{"version":3,"file":"app-b4dc68f10f677bbeff51.js","mappings":"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,MAC5BA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GACnD,EACJK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASQ,EAAM,EACzBR,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUW,EAAKE,EAAM,CACzB,CACAv8C,EAAM,IAAM07C,EACZ17C,EAAM,IAAM27C,EACZ37C,EAAM,IAAM47C,EACZ57C,EAAM,IAAM67C,EACZ77C,EAAM,IAAM87C,EACZ97C,EAAM,IAAM+7C,EACZ/7C,EAAM,IAAMg8C,EACZh8C,EAAM,IAAMi8C,CAChB,EACOb,CACX,CAlH8B,GAmH9Bp1D,EAAQo1D,UAAYA,oCCzHpBtmD,OAAOk2B,eAAehlC,EAAS,aAAc,CAAEwF,OAAO,IACtDxF,EAAQu1D,oBAAsBv1D,EAAQ02C,KAAO12C,EAAQs2D,IAAMt2D,EAAQy1D,cAAgBz1D,EAAQy2C,gBAAa,EAIxGz2C,EAAQy2C,WAAa,GAIrBz2C,EAAQy1D,cAAgB,GAIxBz1D,EAAQs2D,IAAM,IAAI1f,YAAY,CAC1B,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAKJ52C,EAAQ02C,KAAO,CACX,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAKJ12C,EAAQu1D,oBAAsBp0D,KAAK0oC,IAAI,EAAG,IAAM,sCC/FhD/6B,OAAOk2B,eAAehlC,EAAS,aAAc,CAAEwF,OAAO,KAEtD,EADc,EAAQ,OACVirD,cAAc,EAAQ,OAAezwD,uCCFjD8O,OAAOk2B,eAAehlC,EAAS,aAAc,CAAEwF,OAAO,IACtDxF,EAAQ0e,YAAS,EACjB,IAA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CnBjmR,IAAS,EAAUkmR,WACnBlmR,IAAS,EAAUmmR,SACnBnmR,IAAS,EAAUomR,MACnBpmR,IAAS,EAAUqmR,OAEvB,CG+4CS2J,CAAsBhwR,GAAQ,IAAIA,KAAUA,CACrD,qFC3+CA,MAAMiwR,EAAgB,gCAEtB,SAASC,EAAgBzhW,GACvB,OAAO0hW,EAAgB1hW,EAAIG,WAAW,GACxC,CAEA,MAAMuhW,EAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,0BCtKK,SAAS99B,EAAM73I,GACpB,OAAO,QAAMA,EAAK41K,EACpB,CACA,MACMA,EAAqB,CACzB3xV,KAAM,CACJyoU,MAAQrsV,GAASA,EAAK2D,OAExB66U,SAAU,CACR6N,MAAQrsV,GAAS,IAAMA,EAAK6L,MA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","sources":["webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/uuid/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/bytesToUuid.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/rng-browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/uuid/v1.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/uuid/v4.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/adapters/xhr.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/axios.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/Cancel.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/CancelToken.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/cancel/isCancel.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/Axios.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/InterceptorManager.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/buildFullPath.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/createError.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/dispatchRequest.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/enhanceError.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/mergeConfig.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/settle.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/core/transformData.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/defaults.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/env/data.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/bind.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/buildURL.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/combineURLs.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/cookies.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isAxiosError.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/parseHeaders.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/spread.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/helpers/validator.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/axios/lib/utils.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/Errors.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/Auth.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/urlListener.js","webpack://folx-webapp/./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/handlers/unauthenticated.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/CognitoIdentity/base.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/CognitoIdentity/getId.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/CognitoIdentity/getCredentialsForIdentity.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/helpers.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detectFramework.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Expo.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/ReactNative.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Next.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Nuxt.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Angular.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/React.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Vue.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Svelte.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/detection/Web.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Platform/types.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://folx-webapp/./node_modules/universal-cookie/es6/utils.js","webpack://folx-webapp/./node_modules/universal-cookie/es6/Cookies.js","webpack://folx-webapp/./node_modules/universal-cookie/es6/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/endpoints/partitions.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/endpoints/getDnsSuffix.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/handlers/fetch.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/internal/composeServiceApi.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/internal/composeTransferHandler.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/retry/isClockSkewError.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/retry/defaultRetryDecider.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/retry/jitteredBackoff.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/retry/middleware.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/utils/getSkewCorrectedDate.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/utils/isClockSkewed.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/middleware.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/utils/extendedEncodeURIComponent.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/middleware/userAgent/middleware.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/serde/json.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/serde/responseInfo.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/utils/memoization.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/parseAWSExports.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/uuid/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/uuid/lib/bytesToUuid.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/uuid/lib/rng-browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/uuid/v1.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/uuid/v4.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/node_modules/uuid/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/node_modules/uuid/lib/bytesToUuid.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/node_modules/uuid/lib/rng-browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/node_modules/uuid/v1.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/node_modules/uuid/v4.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/xmlParser/dom.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/utils/parsePayload.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/base.js","webpack://folx-webapp/./node_modules/@aws-sdk/md5-js/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/md5-js/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/md5-js/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/base64/index.browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/utils/serializeHelpers.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/common/StorageErrorStrings.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/contentSha256middleware.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/xhrTransferHandler.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/runtime/s3TransferHandler/xhr.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/copyObject.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/utils/deserializeHelpers.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/getObject.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/headObject.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/deleteObject.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/listObjectsV2.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/common/StorageConstants.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3UploadTask.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/common/StorageUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/common/S3ClientUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/putObject.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/createMultipartUpload.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/uploadPart.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/completeMultipartUpload.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/abortMultipartUpload.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/AwsClients/S3/listParts.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/common/MD5utils.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3ProviderManagedUpload.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3Provider.js","webpack://folx-webapp/./node_modules/@aws-amplify/storage/lib-esm/Storage.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-js/build/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://folx-webapp/./node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://folx-webapp/./node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/build/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/build/numToUint8.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/util/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/util/build/numToUint8.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/models/LocationServiceException.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/util/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/util/build/numToUint8.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/protocol-http/dist-es/isValidHostname.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/client.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/command.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/smithy-client/dist-es/ser-utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/aws_crc32.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/numToUint8.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/bytesToUuid.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/rng-browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v1.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v4.js","webpack://folx-webapp/./node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","webpack://folx-webapp/./node_modules/@aws-sdk/protocol-http/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-locate-window/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/serialisation/heavyCustomerDataWarning.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/serialisation/contextManager.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/resource/resourceUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/clickChain.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/getActionNameFromElement.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/getSelectorFromElement.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/listenActionEvents.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/computeFrustration.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/trackClickActions.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/action/actionCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/trackFirstHidden.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/error/errorCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/error/trackConsoleError.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/error/trackReportError.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/resource/matchRequestTiming.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/resource/resourceCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/foregroundContexts.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/trackInitialViewTimings.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/trackViewMetrics.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/trackViewEventCounts.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/trackViews.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/viewCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/constants.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://folx-webapp/./node_modules/@datadog/browser-worker/esm/entries/string.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/startDeflateWorker.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://folx-webapp/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/longTask/longTaskCollection.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/rumEventsCollection/view/startWebVitalTelemetryDebug.js","webpack://folx-webapp/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://folx-webapp/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/Platform/version.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/Platform/constants.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://folx-webapp/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://folx-webapp/./node_modules/assert/assert.js","webpack://folx-webapp/./node_modules/assert/node_modules/inherits/inherits_browser.js","webpack://folx-webapp/./node_modules/assert/node_modules/util/support/isBufferBrowser.js","webpack://folx-webapp/./node_modules/assert/node_modules/util/util.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/cache/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://folx-webapp/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/clients/handlers/authenticated.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/Pinpoint/base.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/Pinpoint/putEvents.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/Pinpoint/updateEndpoint.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/utils/UserAgent.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/utils/AppUtils.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/EventBuffer.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/utils/MethodEmbed.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/trackers/PageViewTracker.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/delegate.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/trackers/EventTracker.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/trackers/SessionTracker.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Analytics.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-serde/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-stack/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","webpack://folx-webapp/./node_modules/@aws-sdk/smithy-client/dist/es/client.js","webpack://folx-webapp/./node_modules/@aws-sdk/smithy-client/dist/es/command.js","webpack://folx-webapp/./node_modules/@aws-sdk/smithy-client/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","webpack://folx-webapp/./node_modules/@aws-sdk/smithy-client/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/commands/PutRecordsCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","webpack://folx-webapp/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-universal/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-browser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/querystring-builder/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","webpack://folx-webapp/./node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","webpack://folx-webapp/./node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/service-error-classification/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-sdk/querystring-parser/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/url-parser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/querystring-parser/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","webpack://folx-webapp/./node_modules/@aws-sdk/config-resolver/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-config-resolver/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-content-length/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-host-header/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-logger/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/dist/es/KinesisClient.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-kinesis/node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSKinesisProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/protocols/Aws_json1_1.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/commands/PutRecordBatchCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-firehose/dist/es/FirehoseClient.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSKinesisFirehoseProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/protocols/Aws_restJson1.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/commands/PutEventsCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-personalize-events/dist/es/PersonalizeEventsClient.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js","webpack://folx-webapp/./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeProvider.js","webpack://folx-webapp/./node_modules/@aws-amplify/api/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-graphql/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/types/PubSub.js","webpack://folx-webapp/./node_modules/zen-observable-ts/lib/bundle.esm.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ReconnectionMonitor.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ReachabilityMonitor/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ConnectionStateMonitor.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-graphql/lib-esm/types/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/internals/InternalPubSub.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/lib-esm/RestClient.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-graphql/lib-esm/internals/InternalGraphQLAPI.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-rest/lib-esm/RestAPI.js","webpack://folx-webapp/./node_modules/@aws-amplify/api/lib-esm/internals/InternalAPI.js","webpack://folx-webapp/./node_modules/@aws-amplify/api/lib-esm/API.js","webpack://folx-webapp/./node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js","webpack://folx-webapp/./node_modules/ulid/dist/index.esm.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/util.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/predicates/sort.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/types.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/BackgroundProcessManager.js","webpack://folx-webapp/./node_modules/immer/dist/immer.esm.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/authModeStrategies/multiAuthStrategy.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/authModeStrategies/defaultAuthStrategy.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/predicates/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/utils.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Util/Mutex.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/idb/build/esm/wrap-idb-value.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/node_modules/idb/build/esm/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/relationship.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/StorageAdapterBase.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/IndexedDBAdapter.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/InMemoryStore.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/AsyncStorageDatabase.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/AsyncStorageAdapter.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/adapter/getDefaultAdapter/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/storage/storage.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/datastoreReachability/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/datastoreConnectivity.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/merger.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/outbox.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/errorMaps.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/mutation.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/subscription.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/sync/processors/sync.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/predicates/next.js","webpack://folx-webapp/./node_modules/@aws-amplify/datastore/lib-esm/datastore/datastore.js","webpack://folx-webapp/./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js","webpack://folx-webapp/./node_modules/@aws-amplify/interactions/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/interactions/lib-esm/Providers/InteractionsProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-config-provider/dist-es/booleanSelector.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-middleware/dist-es/normalizeProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/protocol-http/dist-es/httpRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/protocol-http/dist-es/httpResponse.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-content-length/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/config.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/uuid/dist/esm-browser/rng.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/service-error-classification/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/service-error-classification/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/DefaultRateLimiter.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/uuid/dist/esm-browser/regex.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/uuid/dist/esm-browser/stringify.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/uuid/dist/esm-browser/validate.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/uuid/dist/esm-browser/v4.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/property-provider/dist-es/ProviderError.js","webpack://folx-webapp/./node_modules/@aws-sdk/property-provider/dist-es/CredentialsProviderError.js","webpack://folx-webapp/./node_modules/@aws-sdk/property-provider/dist-es/TokenProviderError.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/property-provider/dist-es/memoize.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalHeaders.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-uri-escape/dist-es/escape-uri.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/node_modules/@aws-sdk/is-array-buffer/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/cloneRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/prepareRequest.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/utilDate.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/moveHeadersToQuery.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/headerUtil.js","webpack://folx-webapp/./node_modules/@aws-sdk/signature-v4/dist-es/getCanonicalQuery.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/client.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/command.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/parse-utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/date-utils.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/exceptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/default-error-handler.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/defaults-mode.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/lazy-json.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/object-mapping.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/extended-encode-uri-component.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/smithy-client/dist-es/resolve-path.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-base64-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/querystring-builder/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/url-parser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/querystring-parser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/LexRuntimeServiceClient.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/models/LexRuntimeServiceServiceException.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/protocols/Aws_restJson1.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/commands/PostTextCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-lex-runtime-service/dist-es/commands/PostContentCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProviderHelper/utils.js","webpack://folx-webapp/./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProvider.js","webpack://folx-webapp/./node_modules/@aws-amplify/interactions/lib-esm/Interactions.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/SessionTracker/SessionTracker.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/common/eventListeners/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/AwsClients/Pinpoint/getInAppMessages.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/common/AWSPinpointProviderCommon/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/types.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/types.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/SessionTracker/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/common/constants.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/utils.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/Providers/AWSPinpointProvider/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/InAppMessaging/InAppMessaging.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/PushNotification/PlatformNotSupportedError.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/PushNotification/PushNotification.js","webpack://folx-webapp/./node_modules/@aws-amplify/notifications/lib-esm/Notifications.js","webpack://folx-webapp/./node_modules/@aws-amplify/predictions/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-amplify/predictions/lib-esm/Predictions.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/I18n/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/models/models_0.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/CreateLogGroupCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/DescribeLogGroupsCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/CreateLogStreamCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/DescribeLogStreamsCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/GetLogEventsCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/commands/PutLogEventsCommand.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/dist/es/CloudWatchLogsClient.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/lib-esm/Providers/AWSCloudWatchProvider.js","webpack://folx-webapp/./node_modules/aws-amplify/lib-esm/withSSRContext.js","webpack://folx-webapp/./node_modules/@aws-amplify/geo/node_modules/tslib/tslib.es6.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/utils/getEndpointFromRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/isFipsRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/getRealRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getHostnameFromVariants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getRegionInfo.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedPartition.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedHostname.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionInfo/getResolvedSigningRegion.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-content-length/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/config.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/uuid/dist/esm-browser/rng.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/service-error-classification/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/service-error-classification/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/DefaultRateLimiter.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/uuid/dist/esm-browser/regex.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/uuid/dist/esm-browser/stringify.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/uuid/dist/esm-browser/validate.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/uuid/dist/esm-browser/v4.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/delayDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/retryDecider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/StandardRetryStrategy.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/defaultRetryQuota.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/AdaptiveRetryStrategy.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/retryMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-base64-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/fetch-http-handler/dist-es/fetch-http-handler.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/querystring-builder/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/fetch-http-handler/dist-es/request-timeout.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/fetch-http-handler/dist-es/stream-collector.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/invalid-dependency/dist-es/invalidProvider.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-body-length-browser/dist-es/calculateBodyLength.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/url-parser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/querystring-parser/dist-es/index.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/endpoints.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/runtimeConfig.browser.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/runtimeConfig.shared.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/LocationClient.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-retry/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-serde/dist-es/serdePlugin.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-serde/dist-es/deserializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/SearchPlaceIndexForTextCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/SearchPlaceIndexForSuggestionsCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/GetPlaceCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/SearchPlaceIndexForPositionCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/GetGeofenceCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/ListGeofencesCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/BatchPutGeofenceCommand.js","webpack://folx-webapp/./node_modules/@aws-sdk/client-location/dist-es/commands/BatchDeleteGeofenceCommand.js","webpack://folx-webapp/./node_modules/@turf/boolean-clockwise/dist/es/index.js","webpack://folx-webapp/./node_modules/@turf/invariant/dist/es/index.js","webpack://folx-webapp/./node_modules/@aws-amplify/geo/lib-esm/util.js","webpack://folx-webapp/./node_modules/@aws-amplify/geo/lib-esm/Providers/AmazonLocationServiceProvider.js","webpack://folx-webapp/./node_modules/@aws-amplify/geo/lib-esm/Geo.js","webpack://folx-webapp/./node_modules/base64-js/index.js","webpack://folx-webapp/./node_modules/bowser/es5.js","webpack://folx-webapp/./node_modules/buffer/index.js","webpack://folx-webapp/./node_modules/buffer/node_modules/isarray/index.js","webpack://folx-webapp/./node_modules/camelcase-keys/index.js","webpack://folx-webapp/./node_modules/camelcase-keys/node_modules/map-obj/index.js","webpack://folx-webapp/./node_modules/camelcase-keys/node_modules/quick-lru/index.js","webpack://folx-webapp/./node_modules/camelcase/index.js","webpack://folx-webapp/./node_modules/cookie/index.js","webpack://folx-webapp/./node_modules/events/events.js","webpack://folx-webapp/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://folx-webapp/./node_modules/gatsby-react-router-scroll/index.js","webpack://folx-webapp/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://folx-webapp/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://folx-webapp/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://folx-webapp/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/fetch.js","webpack://folx-webapp/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://folx-webapp/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://folx-webapp/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://folx-webapp/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://folx-webapp/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://folx-webapp/./.cache/api-runner-browser-plugins.js","webpack://folx-webapp/./.cache/api-runner-browser.js","webpack://folx-webapp/./.cache/create-content-digest-browser-shim.js","webpack://folx-webapp/./.cache/emitter.js","webpack://folx-webapp/./node_modules/mitt/dist/mitt.es.js","webpack://folx-webapp/./.cache/normalize-page-path.js","webpack://folx-webapp/./.cache/find-path.js","webpack://folx-webapp/./.cache/slice/server-slice-renderer.js","webpack://folx-webapp/./.cache/slice/server-slice.js","webpack://folx-webapp/./.cache/slice/inline-slice.js","webpack://folx-webapp/./.cache/slice.js","webpack://folx-webapp/./.cache/gatsby-browser-entry.js","webpack://folx-webapp/./.cache/prefetch.js","webpack://folx-webapp/./.cache/loader.js","webpack://folx-webapp/./.cache/head/components/fire-callback-in-effect.js","webpack://folx-webapp/./.cache/head/constants.js","webpack://folx-webapp/./.cache/head/utils.js","webpack://folx-webapp/./.cache/head/head-export-handler-for-browser.js","webpack://folx-webapp/./.cache/page-renderer.js","webpack://folx-webapp/./.cache/route-announcer-props.js","webpack://folx-webapp/./.cache/navigation.js","webpack://folx-webapp/./node_modules/shallow-compare/es/index.js","webpack://folx-webapp/./.cache/ensure-resources.js","webpack://folx-webapp/./.cache/production-app.js","webpack://folx-webapp/./.cache/public-page-renderer-prod.js","webpack://folx-webapp/./.cache/public-page-renderer.js","webpack://folx-webapp/./.cache/react-dom-utils.js","webpack://folx-webapp/./.cache/redirect-utils.js","webpack://folx-webapp/./.cache/register-service-worker.js","webpack://folx-webapp/./.cache/slice/context.js","webpack://folx-webapp/./.cache/static-query.js","webpack://folx-webapp/./.cache/context-utils.js","webpack://folx-webapp/./.cache/strip-prefix.js","webpack://folx-webapp/./node_modules/react-helmet/es/Helmet.js","webpack://folx-webapp/./src/providers/EntitlementsProvider.tsx","webpack://folx-webapp/./node_modules/redux/es/redux.js","webpack://folx-webapp/./src/state/createStore.ts","webpack://folx-webapp/./gatsby-browser.js","webpack://folx-webapp/./wrap-with-layout.tsx","webpack://folx-webapp/./wrap-with-provider.tsx","webpack://folx-webapp/./node_modules/gatsby-plugin-canonical-urls/gatsby-browser.js","webpack://folx-webapp/./node_modules/gatsby-plugin-datadog-rum/gatsby-browser.js","webpack://folx-webapp/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://folx-webapp/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://folx-webapp/./node_modules/gatsby-plugin-mixpanel/gatsby-browser.js","webpack://folx-webapp/./node_modules/gatsby-plugin-mixpanel/index.js","webpack://folx-webapp/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://folx-webapp/./src/assets/fonts/Chalet-LondonSixty.woff","webpack://folx-webapp/./src/assets/fonts/Chalet-LondonSixty.woff2","webpack://folx-webapp/./src/assets/fonts/Chalet-NewYorkSixty.woff","webpack://folx-webapp/./src/assets/fonts/Chalet-NewYorkSixty.woff2","webpack://folx-webapp/./src/assets/fonts/Hatton-Light.woff","webpack://folx-webapp/./src/assets/fonts/Hatton-Light.woff2","webpack://folx-webapp/./src/assets/fonts/Hatton-Regular.woff","webpack://folx-webapp/./src/assets/fonts/Hatton-Regular.woff2","webpack://folx-webapp/./src/assets/fonts/montserrat-semibold-webfont.woff","webpack://folx-webapp/./src/assets/fonts/montserrat-semibold-webfont.woff2","webpack://folx-webapp/./src/components/GlobalStyles/GlobalStyles.tsx","webpack://folx-webapp/./src/components/Layout/Layout.tsx","webpack://folx-webapp/./src/components/Layout/index.ts","webpack://folx-webapp/./src/hooks/useTracking.ts","webpack://folx-webapp/./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack://folx-webapp/./node_modules/@apollo/client/link/error/index.js","webpack://folx-webapp/./src/providers/ApolloProvider.tsx","webpack://folx-webapp/./node_modules/@apollo/client/link/context/index.js","webpack://folx-webapp/./src/providers/AuthProvider.tsx","webpack://folx-webapp/./src/providers/GraphQLv2ContextProvider.tsx","webpack://folx-webapp/./src/theme/FlowThemes/FlowThemes.ts","webpack://folx-webapp/./src/theme/FlowThemes/utils.ts","webpack://folx-webapp/./src/theme/FolxTheme/FolxTheme.ts","webpack://folx-webapp/./src/theme/FolxTheme/index.ts","webpack://folx-webapp/./src/theme/WsTheme/WsTheme.ts","webpack://folx-webapp/./src/theme/WsTheme/index.ts","webpack://folx-webapp/./src/utils/endpoints.ts","webpack://folx-webapp/./src/utils/error.ts","webpack://folx-webapp/./src/utils/isBrowser.ts","webpack://folx-webapp/./node_modules/gatsby/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/react-server-dom-webpack/index.js","webpack://folx-webapp/./node_modules/graphql-tag/lib/index.js","webpack://folx-webapp/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://folx-webapp/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://folx-webapp/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://folx-webapp/./node_modules/ieee754/index.js","webpack://folx-webapp/./node_modules/invariant/browser.js","webpack://folx-webapp/./node_modules/js-cookie/src/js.cookie.js","webpack://folx-webapp/./node_modules/lodash/_DataView.js","webpack://folx-webapp/./node_modules/lodash/_Hash.js","webpack://folx-webapp/./node_modules/lodash/_ListCache.js","webpack://folx-webapp/./node_modules/lodash/_Map.js","webpack://folx-webapp/./node_modules/lodash/_MapCache.js","webpack://folx-webapp/./node_modules/lodash/_Promise.js","webpack://folx-webapp/./node_modules/lodash/_Set.js","webpack://folx-webapp/./node_modules/lodash/_SetCache.js","webpack://folx-webapp/./node_modules/lodash/_Stack.js","webpack://folx-webapp/./node_modules/lodash/_Symbol.js","webpack://folx-webapp/./node_modules/lodash/_Uint8Array.js","webpack://folx-webapp/./node_modules/lodash/_WeakMap.js","webpack://folx-webapp/./node_modules/lodash/_arrayFilter.js","webpack://folx-webapp/./node_modules/lodash/_arrayLikeKeys.js","webpack://folx-webapp/./node_modules/lodash/_arrayMap.js","webpack://folx-webapp/./node_modules/lodash/_arrayPush.js","webpack://folx-webapp/./node_modules/lodash/_arraySome.js","webpack://folx-webapp/./node_modules/lodash/_assocIndexOf.js","webpack://folx-webapp/./node_modules/lodash/_baseFlatten.js","webpack://folx-webapp/./node_modules/lodash/_baseGet.js","webpack://folx-webapp/./node_modules/lodash/_baseGetAllKeys.js","webpack://folx-webapp/./node_modules/lodash/_baseGetTag.js","webpack://folx-webapp/./node_modules/lodash/_baseIsArguments.js","webpack://folx-webapp/./node_modules/lodash/_baseIsEqual.js","webpack://folx-webapp/./node_modules/lodash/_baseIsEqualDeep.js","webpack://folx-webapp/./node_modules/lodash/_baseIsNative.js","webpack://folx-webapp/./node_modules/lodash/_baseIsTypedArray.js","webpack://folx-webapp/./node_modules/lodash/_baseKeys.js","webpack://folx-webapp/./node_modules/lodash/_baseTimes.js","webpack://folx-webapp/./node_modules/lodash/_baseToString.js","webpack://folx-webapp/./node_modules/lodash/_baseUnary.js","webpack://folx-webapp/./node_modules/lodash/_cacheHas.js","webpack://folx-webapp/./node_modules/lodash/_castPath.js","webpack://folx-webapp/./node_modules/lodash/_coreJsData.js","webpack://folx-webapp/./node_modules/lodash/_equalArrays.js","webpack://folx-webapp/./node_modules/lodash/_equalByTag.js","webpack://folx-webapp/./node_modules/lodash/_equalObjects.js","webpack://folx-webapp/./node_modules/lodash/_freeGlobal.js","webpack://folx-webapp/./node_modules/lodash/_getAllKeys.js","webpack://folx-webapp/./node_modules/lodash/_getMapData.js","webpack://folx-webapp/./node_modules/lodash/_getNative.js","webpack://folx-webapp/./node_modules/lodash/_getRawTag.js","webpack://folx-webapp/./node_modules/lodash/_getSymbols.js","webpack://folx-webapp/./node_modules/lodash/_getTag.js","webpack://folx-webapp/./node_modules/lodash/_getValue.js","webpack://folx-webapp/./node_modules/lodash/_hashClear.js","webpack://folx-webapp/./node_modules/lodash/_hashDelete.js","webpack://folx-webapp/./node_modules/lodash/_hashGet.js","webpack://folx-webapp/./node_modules/lodash/_hashHas.js","webpack://folx-webapp/./node_modules/lodash/_hashSet.js","webpack://folx-webapp/./node_modules/lodash/_isFlattenable.js","webpack://folx-webapp/./node_modules/lodash/_isIndex.js","webpack://folx-webapp/./node_modules/lodash/_isKey.js","webpack://folx-webapp/./node_modules/lodash/_isKeyable.js","webpack://folx-webapp/./node_modules/lodash/_isMasked.js","webpack://folx-webapp/./node_modules/lodash/_isPrototype.js","webpack://folx-webapp/./node_modules/lodash/_listCacheClear.js","webpack://folx-webapp/./node_modules/lodash/_listCacheDelete.js","webpack://folx-webapp/./node_modules/lodash/_listCacheGet.js","webpack://folx-webapp/./node_modules/lodash/_listCacheHas.js","webpack://folx-webapp/./node_modules/lodash/_listCacheSet.js","webpack://folx-webapp/./node_modules/lodash/_mapCacheClear.js","webpack://folx-webapp/./node_modules/lodash/_mapCacheDelete.js","webpack://folx-webapp/./node_modules/lodash/_mapCacheGet.js","webpack://folx-webapp/./node_modules/lodash/_mapCacheHas.js","webpack://folx-webapp/./node_modules/lodash/_mapCacheSet.js","webpack://folx-webapp/./node_modules/lodash/_mapToArray.js","webpack://folx-webapp/./node_modules/lodash/_memoizeCapped.js","webpack://folx-webapp/./node_modules/lodash/_nativeCreate.js","webpack://folx-webapp/./node_modules/lodash/_nativeKeys.js","webpack://folx-webapp/./node_modules/lodash/_nodeUtil.js","webpack://folx-webapp/./node_modules/lodash/_objectToString.js","webpack://folx-webapp/./node_modules/lodash/_overArg.js","webpack://folx-webapp/./node_modules/lodash/_root.js","webpack://folx-webapp/./node_modules/lodash/_setCacheAdd.js","webpack://folx-webapp/./node_modules/lodash/_setCacheHas.js","webpack://folx-webapp/./node_modules/lodash/_setToArray.js","webpack://folx-webapp/./node_modules/lodash/_stackClear.js","webpack://folx-webapp/./node_modules/lodash/_stackDelete.js","webpack://folx-webapp/./node_modules/lodash/_stackGet.js","webpack://folx-webapp/./node_modules/lodash/_stackHas.js","webpack://folx-webapp/./node_modules/lodash/_stackSet.js","webpack://folx-webapp/./node_modules/lodash/_stringToPath.js","webpack://folx-webapp/./node_modules/lodash/_toKey.js","webpack://folx-webapp/./node_modules/lodash/_toSource.js","webpack://folx-webapp/./node_modules/lodash/eq.js","webpack://folx-webapp/./node_modules/lodash/flatten.js","webpack://folx-webapp/./node_modules/lodash/get.js","webpack://folx-webapp/./node_modules/lodash/isArguments.js","webpack://folx-webapp/./node_modules/lodash/isArray.js","webpack://folx-webapp/./node_modules/lodash/isArrayLike.js","webpack://folx-webapp/./node_modules/lodash/isBuffer.js","webpack://folx-webapp/./node_modules/lodash/isEmpty.js","webpack://folx-webapp/./node_modules/lodash/isEqual.js","webpack://folx-webapp/./node_modules/lodash/isFunction.js","webpack://folx-webapp/./node_modules/lodash/isLength.js","webpack://folx-webapp/./node_modules/lodash/isObject.js","webpack://folx-webapp/./node_modules/lodash/isObjectLike.js","webpack://folx-webapp/./node_modules/lodash/isSymbol.js","webpack://folx-webapp/./node_modules/lodash/isTypedArray.js","webpack://folx-webapp/./node_modules/lodash/keys.js","webpack://folx-webapp/./node_modules/lodash/memoize.js","webpack://folx-webapp/./node_modules/lodash/noop.js","webpack://folx-webapp/./node_modules/lodash/stubArray.js","webpack://folx-webapp/./node_modules/lodash/stubFalse.js","webpack://folx-webapp/./node_modules/lodash/toString.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/construct.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://folx-webapp/./node_modules/polished/dist/polished.esm.js","webpack://folx-webapp/./node_modules/querystring/decode.js","webpack://folx-webapp/./node_modules/querystring/encode.js","webpack://folx-webapp/./node_modules/querystring/index.js","webpack://folx-webapp/./node_modules/react-fast-compare/index.js","webpack://folx-webapp/./node_modules/react-is/cjs/react-is.production.min.js","webpack://folx-webapp/./node_modules/react-is/index.js","webpack://folx-webapp/./node_modules/react-redux/es/components/Context.js","webpack://folx-webapp/./node_modules/react-redux/es/utils/batch.js","webpack://folx-webapp/./node_modules/react-redux/es/utils/Subscription.js","webpack://folx-webapp/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://folx-webapp/./node_modules/react-redux/es/components/Provider.js","webpack://folx-webapp/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://folx-webapp/./node_modules/react-redux/es/hooks/useStore.js","webpack://folx-webapp/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://folx-webapp/./node_modules/react-redux/es/hooks/useSelector.js","webpack://folx-webapp/./node_modules/react-redux/es/index.js","webpack://folx-webapp/./node_modules/react-side-effect/lib/index.js","webpack://folx-webapp/./node_modules/shallowequal/index.js","webpack://folx-webapp/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://folx-webapp/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://folx-webapp/./node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://folx-webapp/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://folx-webapp/./node_modules/url/node_modules/punycode/punycode.js","webpack://folx-webapp/./node_modules/url/url.js","webpack://folx-webapp/./node_modules/url/util.js","webpack://folx-webapp/./node_modules/zen-observable/index.js","webpack://folx-webapp/./node_modules/zen-observable/lib/Observable.js","webpack://folx-webapp/./node_modules/zen-push/index.js","webpack://folx-webapp/./node_modules/zen-push/node_modules/zen-observable/index.js","webpack://folx-webapp/./node_modules/zen-push/node_modules/zen-observable/zen-observable.js","webpack://folx-webapp/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/core/cache.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/core/types/common.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/policies.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack://folx-webapp/./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack://folx-webapp/./node_modules/@apollo/client/link/core/execute.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/observables/iteration.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/observables/Concast.js","webpack://folx-webapp/./node_modules/@apollo/client/core/equalByQuery.js","webpack://folx-webapp/./node_modules/@apollo/client/core/ObservableQuery.js","webpack://folx-webapp/./node_modules/graphql/language/predicates.mjs","webpack://folx-webapp/./node_modules/@apollo/client/core/LocalState.js","webpack://folx-webapp/./node_modules/@apollo/client/core/QueryInfo.js","webpack://folx-webapp/./node_modules/@apollo/client/core/QueryManager.js","webpack://folx-webapp/./node_modules/@apollo/client/core/ApolloClient.js","webpack://folx-webapp/./node_modules/@apollo/client/core/networkStatus.js","webpack://folx-webapp/./node_modules/@apollo/client/errors/index.js","webpack://folx-webapp/./node_modules/@apollo/client/link/core/ApolloLink.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/createOperation.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/transformOperation.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/validateOperation.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/iterators/nodeStream.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/iterators/reader.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/responseIterator.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/iterators/async.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/iterators/promise.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/throwServerError.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/checkFetcher.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/fromError.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/createHttpLink.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/selectURI.js","webpack://folx-webapp/./node_modules/@apollo/client/link/utils/filterOperationVariables.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack://folx-webapp/./node_modules/@apollo/client/link/http/HttpLink.js","webpack://folx-webapp/./node_modules/@apollo/client/node_modules/zen-observable-ts/module.js","webpack://folx-webapp/./node_modules/@apollo/client/react/context/ApolloContext.js","webpack://folx-webapp/./node_modules/@apollo/client/react/hooks/useApolloClient.js","webpack://folx-webapp/./node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","webpack://folx-webapp/./node_modules/@apollo/client/react/hooks/useQuery.js","webpack://folx-webapp/./node_modules/@apollo/client/react/parser/index.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/arrays.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/canUse.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/compact.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/incrementalResult.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/makeUniqueId.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/mergeOptions.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/objects.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","webpack://folx-webapp/./node_modules/ts-invariant/lib/invariant.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/globals/maybe.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/globals/global.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/globals/invariantWrappers.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/globals/index.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/DocumentTransform.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/directives.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/print.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack://folx-webapp/./node_modules/@apollo/client/utilities/graphql/transform.js","webpack://folx-webapp/./node_modules/@apollo/client/version.js","webpack://folx-webapp/./node_modules/@aws-amplify/core/node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/tslib/tslib.es6.mjs","webpack://folx-webapp/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://folx-webapp/./node_modules/@wry/context/lib/slot.js","webpack://folx-webapp/./node_modules/@wry/context/lib/index.js","webpack://folx-webapp/./node_modules/@wry/equality/lib/index.js","webpack://folx-webapp/./node_modules/@wry/trie/lib/index.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/bind.js","webpack://folx-webapp/./node_modules/axios/lib/utils.js","webpack://folx-webapp/./node_modules/axios/lib/core/AxiosError.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/toFormData.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/buildURL.js","webpack://folx-webapp/./node_modules/axios/lib/core/InterceptorManager.js","webpack://folx-webapp/./node_modules/axios/lib/defaults/transitional.js","webpack://folx-webapp/./node_modules/axios/lib/platform/browser/index.js","webpack://folx-webapp/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://folx-webapp/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://folx-webapp/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://folx-webapp/./node_modules/axios/lib/platform/common/utils.js","webpack://folx-webapp/./node_modules/axios/lib/platform/index.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://folx-webapp/./node_modules/axios/lib/defaults/index.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://folx-webapp/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://folx-webapp/./node_modules/axios/lib/core/transformData.js","webpack://folx-webapp/./node_modules/axios/lib/cancel/isCancel.js","webpack://folx-webapp/./node_modules/axios/lib/cancel/CanceledError.js","webpack://folx-webapp/./node_modules/axios/lib/core/settle.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/speedometer.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/throttle.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/cookies.js","webpack://folx-webapp/./node_modules/axios/lib/core/buildFullPath.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/combineURLs.js","webpack://folx-webapp/./node_modules/axios/lib/core/mergeConfig.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://folx-webapp/./node_modules/axios/lib/adapters/xhr.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/composeSignals.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/trackStream.js","webpack://folx-webapp/./node_modules/axios/lib/adapters/fetch.js","webpack://folx-webapp/./node_modules/axios/lib/adapters/adapters.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/null.js","webpack://folx-webapp/./node_modules/axios/lib/core/dispatchRequest.js","webpack://folx-webapp/./node_modules/axios/lib/env/data.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/validator.js","webpack://folx-webapp/./node_modules/axios/lib/core/Axios.js","webpack://folx-webapp/./node_modules/axios/lib/cancel/CancelToken.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://folx-webapp/./node_modules/axios/lib/axios.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/spread.js","webpack://folx-webapp/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://folx-webapp/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://folx-webapp/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://folx-webapp/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack://folx-webapp/./node_modules/graphql/jsutils/invariant.mjs","webpack://folx-webapp/./node_modules/graphql/language/location.mjs","webpack://folx-webapp/./node_modules/graphql/language/printLocation.mjs","webpack://folx-webapp/./node_modules/graphql/error/GraphQLError.mjs","webpack://folx-webapp/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://folx-webapp/./node_modules/graphql/jsutils/devAssert.mjs","webpack://folx-webapp/./node_modules/graphql/jsutils/inspect.mjs","webpack://folx-webapp/./node_modules/graphql/language/ast.mjs","webpack://folx-webapp/./node_modules/graphql/language/blockString.mjs","webpack://folx-webapp/./node_modules/graphql/language/characterClasses.mjs","webpack://folx-webapp/./node_modules/graphql/language/kinds.mjs","webpack://folx-webapp/./node_modules/graphql/error/syntaxError.mjs","webpack://folx-webapp/./node_modules/graphql/language/directiveLocation.mjs","webpack://folx-webapp/./node_modules/graphql/language/tokenKind.mjs","webpack://folx-webapp/./node_modules/graphql/language/lexer.mjs","webpack://folx-webapp/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://folx-webapp/./node_modules/graphql/language/source.mjs","webpack://folx-webapp/./node_modules/graphql/language/parser.mjs","webpack://folx-webapp/./node_modules/graphql/language/printString.mjs","webpack://folx-webapp/./node_modules/graphql/language/printer.mjs","webpack://folx-webapp/./node_modules/graphql/language/visitor.mjs","webpack://folx-webapp/./node_modules/optimism/lib/cache.js","webpack://folx-webapp/./node_modules/optimism/lib/context.js","webpack://folx-webapp/./node_modules/optimism/lib/helpers.js","webpack://folx-webapp/./node_modules/optimism/lib/entry.js","webpack://folx-webapp/./node_modules/optimism/lib/dep.js","webpack://folx-webapp/./node_modules/optimism/lib/index.js","webpack://folx-webapp/./node_modules/ramda/es/T.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_concat.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_curry1.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_arity.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_curry2.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_curryN.js","webpack://folx-webapp/./node_modules/ramda/es/curryN.js","webpack://folx-webapp/./node_modules/ramda/es/addIndex.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isArray.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_dispatchable.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isTransformer.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_reduced.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xfBase.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xall.js","webpack://folx-webapp/./node_modules/ramda/es/all.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_map.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isString.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xwrap.js","webpack://folx-webapp/./node_modules/ramda/es/bind.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_reduce.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xmap.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_has.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isArguments.js","webpack://folx-webapp/./node_modules/ramda/es/keys.js","webpack://folx-webapp/./node_modules/ramda/es/map.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isInteger.js","webpack://folx-webapp/./node_modules/ramda/es/nth.js","webpack://folx-webapp/./node_modules/ramda/es/prop.js","webpack://folx-webapp/./node_modules/ramda/es/pluck.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_curry3.js","webpack://folx-webapp/./node_modules/ramda/es/reduce.js","webpack://folx-webapp/./node_modules/ramda/es/always.js","webpack://folx-webapp/./node_modules/ramda/es/and.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xany.js","webpack://folx-webapp/./node_modules/ramda/es/any.js","webpack://folx-webapp/./node_modules/ramda/es/max.js","webpack://folx-webapp/./node_modules/ramda/es/anyPass.js","webpack://folx-webapp/./node_modules/ramda/es/ap.js","webpack://folx-webapp/./node_modules/ramda/es/values.js","webpack://folx-webapp/./node_modules/ramda/es/assocPath.js","webpack://folx-webapp/./node_modules/ramda/es/liftN.js","webpack://folx-webapp/./node_modules/ramda/es/lift.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_makeFlat.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_flatCat.js","webpack://folx-webapp/./node_modules/ramda/es/not.js","webpack://folx-webapp/./node_modules/ramda/es/complement.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_pipe.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://folx-webapp/./node_modules/ramda/es/slice.js","webpack://folx-webapp/./node_modules/ramda/es/tail.js","webpack://folx-webapp/./node_modules/ramda/es/pipe.js","webpack://folx-webapp/./node_modules/ramda/es/reverse.js","webpack://folx-webapp/./node_modules/ramda/es/compose.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isFunction.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_includesWith.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_objectIs.js","webpack://folx-webapp/./node_modules/ramda/es/type.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_equals.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_functionName.js","webpack://folx-webapp/./node_modules/ramda/es/equals.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_indexOf.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_includes.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_quote.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_toISOString.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isObject.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xfilter.js","webpack://folx-webapp/./node_modules/ramda/es/filter.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_filter.js","webpack://folx-webapp/./node_modules/ramda/es/reject.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_complement.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_toString.js","webpack://folx-webapp/./node_modules/ramda/es/toString.js","webpack://folx-webapp/./node_modules/ramda/es/concat.js","webpack://folx-webapp/./node_modules/ramda/es/cond.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_clone.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xreduceBy.js","webpack://folx-webapp/./node_modules/ramda/es/reduceBy.js","webpack://folx-webapp/./node_modules/ramda/es/curry.js","webpack://folx-webapp/./node_modules/ramda/es/descend.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_Set.js","webpack://folx-webapp/./node_modules/ramda/es/dissocPath.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xdrop.js","webpack://folx-webapp/./node_modules/ramda/es/drop.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xtake.js","webpack://folx-webapp/./node_modules/ramda/es/take.js","webpack://folx-webapp/./node_modules/ramda/es/empty.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isTypedArray.js","webpack://folx-webapp/./node_modules/ramda/es/takeLast.js","webpack://folx-webapp/./node_modules/ramda/es/endsWith.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xfind.js","webpack://folx-webapp/./node_modules/ramda/es/find.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://folx-webapp/./node_modules/ramda/es/findIndex.js","webpack://folx-webapp/./node_modules/ramda/es/flatten.js","webpack://folx-webapp/./node_modules/ramda/es/forEach.js","webpack://folx-webapp/./node_modules/ramda/es/forEachObjIndexed.js","webpack://folx-webapp/./node_modules/ramda/es/groupBy.js","webpack://folx-webapp/./node_modules/ramda/es/gt.js","webpack://folx-webapp/./node_modules/ramda/es/gte.js","webpack://folx-webapp/./node_modules/ramda/es/isNil.js","webpack://folx-webapp/./node_modules/ramda/es/hasPath.js","webpack://folx-webapp/./node_modules/ramda/es/has.js","webpack://folx-webapp/./node_modules/ramda/es/head.js","webpack://folx-webapp/./node_modules/ramda/es/ifElse.js","webpack://folx-webapp/./node_modules/ramda/es/includes.js","webpack://folx-webapp/./node_modules/ramda/es/indexOf.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_identity.js","webpack://folx-webapp/./node_modules/ramda/es/identity.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_xuniqBy.js","webpack://folx-webapp/./node_modules/ramda/es/uniq.js","webpack://folx-webapp/./node_modules/ramda/es/uniqBy.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_objectAssign.js","webpack://folx-webapp/./node_modules/ramda/es/into.js","webpack://folx-webapp/./node_modules/ramda/es/invoker.js","webpack://folx-webapp/./node_modules/ramda/es/is.js","webpack://folx-webapp/./node_modules/ramda/es/isEmpty.js","webpack://folx-webapp/./node_modules/ramda/es/join.js","webpack://folx-webapp/./node_modules/ramda/es/last.js","webpack://folx-webapp/./node_modules/ramda/es/length.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isNumber.js","webpack://folx-webapp/./node_modules/ramda/es/lt.js","webpack://folx-webapp/./node_modules/ramda/es/mapObjIndexed.js","webpack://folx-webapp/./node_modules/ramda/es/mergeRight.js","webpack://folx-webapp/./node_modules/ramda/es/min.js","webpack://folx-webapp/./node_modules/ramda/es/modifyPath.js","webpack://folx-webapp/./node_modules/ramda/es/or.js","webpack://folx-webapp/./node_modules/ramda/es/otherwise.js","webpack://folx-webapp/./node_modules/ramda/es/pickAll.js","webpack://folx-webapp/./node_modules/ramda/es/propEq.js","webpack://folx-webapp/./node_modules/ramda/es/propSatisfies.js","webpack://folx-webapp/./node_modules/ramda/es/replace.js","webpack://folx-webapp/./node_modules/ramda/es/sort.js","webpack://folx-webapp/./node_modules/ramda/es/split.js","webpack://folx-webapp/./node_modules/ramda/es/splitAt.js","webpack://folx-webapp/./node_modules/ramda/es/startsWith.js","webpack://folx-webapp/./node_modules/ramda/es/test.js","webpack://folx-webapp/./node_modules/ramda/es/internal/_isRegExp.js","webpack://folx-webapp/./node_modules/ramda/es/toLower.js","webpack://folx-webapp/./node_modules/ramda/es/toPairs.js","webpack://folx-webapp/./node_modules/ramda/es/toUpper.js","webpack://folx-webapp/./node_modules/ramda/es/trim.js","webpack://folx-webapp/./node_modules/ramda/es/union.js","webpack://folx-webapp/./node_modules/ramda/es/xor.js","webpack://folx-webapp/./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.26.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\n//# sourceMappingURL=AuthErrorStrings.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar SELF = '_self';\nexport var launchUri = function (url) {\n var windowProxy = window.open(url, SELF);\n if (windowProxy) {\n return Promise.resolve(windowProxy);\n }\n else {\n return Promise.reject();\n }\n};\n//# sourceMappingURL=urlOpener.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { Buffer } from 'buffer';\nimport { isCognitoHostedOpts, CognitoHostedUIIdentityProvider, } from '../types/Auth';\nimport { AuthAction, Category, ConsoleLogger as Logger, getAmplifyUserAgent, Hub, urlSafeEncode, USER_AGENT_HEADER, } from '@aws-amplify/core';\nimport { Sha256 } from '@aws-crypto/sha256-js';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\nvar logger = new Logger('OAuth');\nvar OAuth = /** @class */ (function () {\n function OAuth(_a) {\n var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b;\n this._urlOpener = config.urlOpener || launchUri;\n this._config = config;\n this._cognitoClientId = cognitoClientId;\n if (!this.isValidScopes(scopes))\n throw Error('scopes must be a String Array');\n this._scopes = scopes;\n }\n OAuth.prototype.isValidScopes = function (scopes) {\n return (Array.isArray(scopes) && scopes.every(function (scope) { return typeof scope === 'string'; }));\n };\n OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) {\n if (responseType === void 0) { responseType = 'code'; }\n if (provider === void 0) { provider = CognitoHostedUIIdentityProvider.Cognito; }\n var generatedState = this._generateState(32);\n /* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito\n single-encodes/decodes url on first sign in and double-encodes/decodes url\n when user already signed in. Using encodeURIComponent, Base32, Base64 add\n characters % or = which on further encoding becomes unsafe. '=' create issue\n for parsing query params.\n Refer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n var state = customState\n ? generatedState + \"-\" + urlSafeEncode(customState)\n : generatedState;\n oAuthStorage.setState(state);\n var pkce_key = this._generateRandom(128);\n oAuthStorage.setPKCE(pkce_key);\n var code_challenge = this._generateChallenge(pkce_key);\n var code_challenge_method = 'S256';\n var scopesString = this._scopes.join(' ');\n var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scope: scopesString, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {})))\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n var URL = \"https://\" + domain + \"/oauth2/authorize?\" + queryString;\n logger.debug(\"Redirecting to \" + URL);\n this._urlOpener(URL, redirectSignIn);\n };\n OAuth.prototype._handleCodeFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var code, currentUrlPathname, redirectSignInPathname, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, customUserAgentDetails, _a, access_token, refresh_token, id_token, error;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n code = (parse(currentUrl).query || '')\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, { code: undefined }).code;\n currentUrlPathname = parse(currentUrl).pathname || '/';\n redirectSignInPathname = parse(this._config.redirectSignIn).pathname || '/';\n if (!code || currentUrlPathname !== redirectSignInPathname) {\n return [2 /*return*/];\n }\n oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token';\n dispatchAuthEvent('codeFlow', {}, \"Retrieving tokens from \" + oAuthTokenEndpoint);\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.clientID;\n redirect_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignIn\n : this._config.redirectUri;\n code_verifier = oAuthStorage.getPKCE();\n oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code,\n client_id: client_id,\n redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {}));\n logger.debug(\"Calling token endpoint: \" + oAuthTokenEndpoint + \" with\", oAuthTokenBody);\n body = Object.entries(oAuthTokenBody)\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n customUserAgentDetails = {\n category: Category.Auth,\n action: AuthAction.FederatedSignIn,\n };\n return [4 /*yield*/, fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: (_b = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n _b[USER_AGENT_HEADER] = getAmplifyUserAgent(customUserAgentDetails),\n _b),\n body: body,\n })];\n case 1: return [4 /*yield*/, (_c.sent()).json()];\n case 2:\n _a = _c.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error;\n if (error) {\n throw new Error(error);\n }\n return [2 /*return*/, {\n accessToken: access_token,\n refreshToken: refresh_token,\n idToken: id_token,\n }];\n }\n });\n });\n };\n OAuth.prototype._handleImplicitFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, id_token, access_token;\n return __generator(this, function (_b) {\n _a = (parse(currentUrl).hash || '#')\n .substr(1) // Remove # from returned code\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, {\n id_token: undefined,\n access_token: undefined,\n }), id_token = _a.id_token, access_token = _a.access_token;\n dispatchAuthEvent('implicitFlow', {}, \"Got tokens from \" + currentUrl);\n logger.debug(\"Retrieving implicit tokens from \" + currentUrl + \" with\");\n return [2 /*return*/, {\n accessToken: access_token,\n idToken: id_token,\n refreshToken: null,\n }];\n });\n });\n };\n OAuth.prototype.handleAuthResponse = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var urlParams, error, error_description, state, _a, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, , 6]);\n urlParams = currentUrl\n ? __assign(__assign({}, (parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {})), (parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {}))\n : {};\n error = urlParams.error, error_description = urlParams.error_description;\n if (error) {\n throw new Error(error_description);\n }\n state = this._validateState(urlParams);\n logger.debug(\"Starting \" + this._config.responseType + \" flow with \" + currentUrl);\n if (!(this._config.responseType === 'code')) return [3 /*break*/, 2];\n _a = [{}];\n return [4 /*yield*/, this._handleCodeFlow(currentUrl)];\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])];\n case 2:\n _b = [{}];\n return [4 /*yield*/, this._handleImplicitFlow(currentUrl)];\n case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_1 = _c.sent();\n logger.debug(\"Error handling auth response.\", e_1);\n throw e_1;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n OAuth.prototype._validateState = function (urlParams) {\n if (!urlParams) {\n return;\n }\n var savedState = oAuthStorage.getState();\n var returnedState = urlParams.state;\n // This is because savedState only exists if the flow was initiated by Amplify\n if (savedState && savedState !== returnedState) {\n throw new Error('Invalid state in OAuth flow');\n }\n return returnedState;\n };\n OAuth.prototype.signOut = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oAuthLogoutEndpoint, client_id, signout_uri;\n return __generator(this, function (_a) {\n oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?';\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.oauth.clientID;\n signout_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignOut\n : this._config.returnTo;\n oAuthLogoutEndpoint += Object.entries({\n client_id: client_id,\n logout_uri: encodeURIComponent(signout_uri),\n })\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return k + \"=\" + v;\n })\n .join('&');\n dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, \"Signing out from \" + oAuthLogoutEndpoint);\n logger.debug(\"Signing out from \" + oAuthLogoutEndpoint);\n return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint, signout_uri)];\n });\n });\n };\n OAuth.prototype._generateState = function (length) {\n var result = '';\n var i = length;\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (; i > 0; --i)\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result;\n };\n OAuth.prototype._generateChallenge = function (code) {\n var awsCryptoHash = new Sha256();\n awsCryptoHash.update(code);\n var resultFromAWSCrypto = awsCryptoHash.digestSync();\n var b64 = Buffer.from(resultFromAWSCrypto).toString('base64');\n var base64URLFromAWSCrypto = this._base64URL(b64);\n return base64URLFromAWSCrypto;\n };\n OAuth.prototype._base64URL = function (string) {\n return string.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n };\n OAuth.prototype._generateRandom = function (size) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n var buffer = new Uint8Array(size);\n if (typeof window !== 'undefined' && !!window.crypto) {\n window.crypto.getRandomValues(buffer);\n }\n else {\n for (var i = 0; i < size; i += 1) {\n buffer[i] = (Math.random() * CHARSET.length) | 0;\n }\n }\n return this._bufferToString(buffer);\n };\n OAuth.prototype._bufferToString = function (buffer) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var state = [];\n for (var i = 0; i < buffer.byteLength; i += 1) {\n var index = buffer[i] % CHARSET.length;\n state.push(CHARSET[index]);\n }\n return state.join('');\n };\n return OAuth;\n}());\nexport default OAuth;\n//# sourceMappingURL=OAuth.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function urlSafeEncode(str) {\n return str\n .split('')\n .map(function (char) {\n return char\n .charCodeAt(0)\n .toString(16)\n .padStart(2, '0');\n })\n .join('');\n}\nexport function urlSafeDecode(hex) {\n return hex\n .match(/.{2}/g)\n .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })\n .join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var setState = function (state) {\n window.sessionStorage.setItem('oauth_state', state);\n};\nexport var getState = function () {\n var oauth_state = window.sessionStorage.getItem('oauth_state');\n window.sessionStorage.removeItem('oauth_state');\n return oauth_state;\n};\nexport var setPKCE = function (private_key) {\n window.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\nexport var getPKCE = function () {\n var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key');\n window.sessionStorage.removeItem('ouath_pkce_key');\n return ouath_pkce_key;\n};\nexport var clearAll = function () {\n window.sessionStorage.removeItem('ouath_pkce_key');\n window.sessionStorage.removeItem('oauth_state');\n};\n//# sourceMappingURL=oauthStorage.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __extends } from \"tslib\";\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nvar logger = new Logger('AuthError');\nvar AuthError = /** @class */ (function (_super) {\n __extends(AuthError, _super);\n function AuthError(type) {\n var _this = this;\n var _a = authErrorMessages[type], message = _a.message, log = _a.log;\n _this = _super.call(this, message) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = AuthError;\n Object.setPrototypeOf(_this, AuthError.prototype);\n _this.name = 'AuthError';\n _this.log = log || message;\n logger.error(_this.log);\n return _this;\n }\n return AuthError;\n}(Error));\nexport { AuthError };\nvar NoUserPoolError = /** @class */ (function (_super) {\n __extends(NoUserPoolError, _super);\n function NoUserPoolError(type) {\n var _this = _super.call(this, type) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = NoUserPoolError;\n Object.setPrototypeOf(_this, NoUserPoolError.prototype);\n _this.name = 'NoUserPoolError';\n return _this;\n }\n return NoUserPoolError;\n}(AuthError));\nexport { NoUserPoolError };\nexport var authErrorMessages = {\n noConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\\n \\n 2. There might be multiple conflicting versions of amplify packages in your node_modules.\\n\\t\\t\\t\\tRefer to our docs site for help upgrading Amplify packages (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js)\\n \",\n },\n missingAuthConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly. \\n The configuration object is missing required auth properties.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Did you run `amplify push` after adding auth via `amplify add auth`?\\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\\n\\n 2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.\\n \",\n },\n emptyUsername: {\n message: AuthErrorStrings.EMPTY_USERNAME,\n },\n // TODO: should include a list of valid sign-in types\n invalidUsername: {\n message: AuthErrorStrings.INVALID_USERNAME,\n },\n emptyPassword: {\n message: AuthErrorStrings.EMPTY_PASSWORD,\n },\n emptyCode: {\n message: AuthErrorStrings.EMPTY_CODE,\n },\n signUpError: {\n message: AuthErrorStrings.SIGN_UP_ERROR,\n log: 'The first parameter should either be non-null string or object',\n },\n noMFA: {\n message: AuthErrorStrings.NO_MFA,\n },\n invalidMFA: {\n message: AuthErrorStrings.INVALID_MFA,\n },\n emptyChallengeResponse: {\n message: AuthErrorStrings.EMPTY_CHALLENGE,\n },\n noUserSession: {\n message: AuthErrorStrings.NO_USER_SESSION,\n },\n deviceConfig: {\n message: AuthErrorStrings.DEVICE_CONFIG,\n },\n networkError: {\n message: AuthErrorStrings.NETWORK_ERROR,\n },\n autoSignInError: {\n message: AuthErrorStrings.AUTOSIGNIN_ERROR,\n },\n default: {\n message: AuthErrorStrings.DEFAULT_MSG,\n },\n};\n//# sourceMappingURL=Errors.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Platform, browserOrNode, parseAWSExports, UniversalStorage, urlSafeDecode, } from '@aws-amplify/core';\nimport { CookieStorage, CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserSession, CognitoUserAttribute, CognitoIdToken, CognitoRefreshToken, CognitoAccessToken, } from 'amazon-cognito-identity-js';\nimport { addAuthCategoryToCognitoUserAgent, addFrameworkToCognitoUserAgent, } from 'amazon-cognito-identity-js/internals';\nimport { parse } from 'url';\nimport OAuth from './OAuth/OAuth';\nimport { default as urlListener } from './urlListener';\nimport { AuthError, NoUserPoolError } from './Errors';\nimport { AuthErrorTypes, CognitoHostedUIIdentityProvider, } from './types/Auth';\nvar logger = new Logger('AuthClass');\nvar USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin';\n// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\nvar OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\n// Cognito Documentation for max device\n// tslint:disable-next-line:max-line-length\n// https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax\nvar MAX_DEVICES = 60;\nvar MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\n/**\n * Provide authentication steps\n */\nvar AuthClass = /** @class */ (function () {\n /**\n * Initialize Auth with AWS configurations\n * @param {Object} config - Configuration of the Auth\n */\n function AuthClass(config) {\n var _this = this;\n this.userPool = null;\n this.user = null;\n this.oAuthFlowInProgress = false;\n this.autoSignInInitiated = false;\n this.inflightSessionPromise = null;\n this.inflightSessionPromiseCounter = 0;\n this.Credentials = Credentials;\n this.wrapRefreshSessionCallback = function (callback) {\n var wrapped = function (error, data) {\n if (data) {\n dispatchAuthEvent('tokenRefresh', undefined, \"New token retrieved\");\n }\n else {\n dispatchAuthEvent('tokenRefresh_failure', error, \"Failed to retrieve new token\");\n }\n return callback(error, data);\n };\n return wrapped;\n }; // prettier-ignore\n this.configure(config);\n this.currentCredentials = this.currentCredentials.bind(this);\n this.currentUserCredentials = this.currentUserCredentials.bind(this);\n Hub.listen('auth', function (_a) {\n var payload = _a.payload;\n var event = payload.event;\n switch (event) {\n case 'verify':\n case 'signIn':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'false');\n break;\n case 'signOut':\n _this._storage.removeItem('amplify-signin-with-hostedUI');\n break;\n case 'cognitoHostedUI':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'true');\n break;\n }\n });\n addAuthCategoryToCognitoUserAgent();\n addFrameworkToCognitoUserAgent(Platform.framework);\n Platform.observeFrameworkChanges(function () {\n addFrameworkToCognitoUserAgent(Platform.framework);\n });\n }\n AuthClass.prototype.getModuleName = function () {\n return 'Auth';\n };\n AuthClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config || {};\n logger.debug('configure Auth');\n var conf = Object.assign({}, this._config, parseAWSExports(config).Auth, config);\n this._config = conf;\n var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata, endpoint = _a.endpoint, storage = _a.storage;\n if (!storage) {\n // backward compatability\n if (cookieStorage)\n this._storage = new CookieStorage(cookieStorage);\n else {\n this._storage = config.ssr\n ? new UniversalStorage()\n : new StorageHelper().getStorage();\n }\n }\n else {\n if (!this._isValidAuthStorage(storage)) {\n logger.error('The storage in the Auth config is not valid!');\n throw new Error('Empty storage object');\n }\n this._storage = storage;\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n if (userPoolId) {\n var userPoolData = {\n UserPoolId: userPoolId,\n ClientId: userPoolWebClientId,\n endpoint: endpoint,\n };\n userPoolData.Storage = this._storage;\n this.userPool = new CognitoUserPool(userPoolData, this.wrapRefreshSessionCallback);\n }\n this.Credentials.configure({\n mandatorySignIn: mandatorySignIn,\n region: region,\n userPoolId: userPoolId,\n identityPoolId: identityPoolId,\n refreshHandlers: refreshHandlers,\n storage: this._storage,\n identityPoolRegion: identityPoolRegion,\n });\n // initialize cognitoauth client if hosted ui options provided\n // to keep backward compatibility:\n var cognitoHostedUIConfig = oauth\n ? isCognitoHostedOpts(this._config.oauth)\n ? oauth\n : oauth.awsCognito\n : undefined;\n if (cognitoHostedUIConfig) {\n var cognitoAuthParams = Object.assign({\n cognitoClientId: userPoolWebClientId,\n UserPoolId: userPoolId,\n domain: cognitoHostedUIConfig['domain'],\n scopes: cognitoHostedUIConfig['scope'],\n redirectSignIn: cognitoHostedUIConfig['redirectSignIn'],\n redirectSignOut: cognitoHostedUIConfig['redirectSignOut'],\n responseType: cognitoHostedUIConfig['responseType'],\n Storage: this._storage,\n urlOpener: cognitoHostedUIConfig['urlOpener'],\n clientMetadata: clientMetadata,\n }, cognitoHostedUIConfig['options']);\n this._oAuthHandler = new OAuth({\n scopes: cognitoAuthParams.scopes,\n config: cognitoAuthParams,\n cognitoClientId: cognitoAuthParams.cognitoClientId,\n });\n // **NOTE** - Remove this in a future major release as it is a breaking change\n // Prevents _handleAuthResponse from being called multiple times in Expo\n // See https://github.com/aws-amplify/amplify-js/issues/4388\n var usedResponseUrls_1 = {};\n urlListener(function (_a) {\n var url = _a.url;\n if (usedResponseUrls_1[url]) {\n return;\n }\n usedResponseUrls_1[url] = true;\n _this._handleAuthResponse(url);\n });\n }\n dispatchAuthEvent('configured', null, \"The Auth category has been configured successfully\");\n if (!this.autoSignInInitiated &&\n typeof this._storage['getItem'] === 'function') {\n var pollingInitiated = this.isTrueStorageValue('amplify-polling-started');\n if (pollingInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n this._storage.removeItem('amplify-auto-sign-in');\n }\n this._storage.removeItem('amplify-polling-started');\n }\n return this._config;\n };\n /**\n * Sign up with username, password and other attributes like phone, email\n * @param {String | object} params - The user attributes used for signin\n * @param {String[]} restOfAttrs - for the backward compatability\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.signUp = function (params) {\n var _this = this;\n var restOfAttrs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n restOfAttrs[_i - 1] = arguments[_i];\n }\n var _a, _b, _c;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var attributes = [];\n var validationData = null;\n var clientMetadata;\n var autoSignIn = { enabled: false };\n var autoSignInValidationData = {};\n var autoSignInClientMetaData = {};\n if (params && typeof params === 'string') {\n username = params;\n password = restOfAttrs ? restOfAttrs[0] : null;\n var email = restOfAttrs ? restOfAttrs[1] : null;\n var phone_number = restOfAttrs ? restOfAttrs[2] : null;\n if (email)\n attributes.push(new CognitoUserAttribute({ Name: 'email', Value: email }));\n if (phone_number)\n attributes.push(new CognitoUserAttribute({\n Name: 'phone_number',\n Value: phone_number,\n }));\n }\n else if (params && typeof params === 'object') {\n username = params['username'];\n password = params['password'];\n if (params && params.clientMetadata) {\n clientMetadata = params.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n var attrs_1 = params['attributes'];\n if (attrs_1) {\n Object.keys(attrs_1).map(function (key) {\n attributes.push(new CognitoUserAttribute({ Name: key, Value: attrs_1[key] }));\n });\n }\n var validationDataObject_1 = params['validationData'];\n if (validationDataObject_1) {\n validationData = [];\n Object.keys(validationDataObject_1).map(function (key) {\n validationData.push(new CognitoUserAttribute({\n Name: key,\n Value: validationDataObject_1[key],\n }));\n });\n }\n autoSignIn = (_a = params.autoSignIn) !== null && _a !== void 0 ? _a : { enabled: false };\n if (autoSignIn.enabled) {\n this._storage.setItem('amplify-auto-sign-in', 'true');\n autoSignInValidationData = (_b = autoSignIn.validationData) !== null && _b !== void 0 ? _b : {};\n autoSignInClientMetaData = (_c = autoSignIn.clientMetaData) !== null && _c !== void 0 ? _c : {};\n }\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.SignUpError);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n logger.debug('signUp attrs:', attributes);\n logger.debug('signUp validation data:', validationData);\n return new Promise(function (resolve, reject) {\n _this.userPool.signUp(username, password, attributes, validationData, function (err, data) {\n if (err) {\n dispatchAuthEvent('signUp_failure', err, username + \" failed to signup\");\n reject(err);\n }\n else {\n dispatchAuthEvent('signUp', data, username + \" has signed up successfully\");\n if (autoSignIn.enabled) {\n _this.handleAutoSignIn(username, password, autoSignInValidationData, autoSignInClientMetaData, data);\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.handleAutoSignIn = function (username, password, validationData, clientMetadata, data) {\n this.autoSignInInitiated = true;\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (data.userConfirmed) {\n this.signInAfterUserConfirmed(authDetails);\n }\n else if (this._config.signUpVerificationMethod === 'link') {\n this.handleLinkAutoSignIn(authDetails);\n }\n else {\n this.handleCodeAutoSignIn(authDetails);\n }\n };\n AuthClass.prototype.handleCodeAutoSignIn = function (authDetails) {\n var _this = this;\n var listenEvent = function (_a) {\n var payload = _a.payload;\n if (payload.event === 'confirmSignUp') {\n _this.signInAfterUserConfirmed(authDetails, listenEvent);\n }\n };\n Hub.listen('auth', listenEvent);\n };\n AuthClass.prototype.handleLinkAutoSignIn = function (authDetails) {\n var _this = this;\n this._storage.setItem('amplify-polling-started', 'true');\n var start = Date.now();\n var autoSignInPollingIntervalId = setInterval(function () {\n if (Date.now() - start > MAX_AUTOSIGNIN_POLLING_MS) {\n clearInterval(autoSignInPollingIntervalId);\n dispatchAuthEvent('autoSignIn_failure', null, 'Please confirm your account and use your credentials to sign in.');\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n else {\n _this.signInAfterUserConfirmed(authDetails, null, autoSignInPollingIntervalId);\n }\n }, 5000);\n };\n AuthClass.prototype.signInAfterUserConfirmed = function (authDetails, listenEvent, autoSignInPollingIntervalId) {\n return __awaiter(this, void 0, void 0, function () {\n var user, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user = this.createCognitoUser(authDetails.getUsername());\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, user.authenticateUser(authDetails, this.authCallbacks(user, function (value) {\n dispatchAuthEvent('autoSignIn', value, authDetails.getUsername() + \" has signed in successfully\");\n if (listenEvent) {\n Hub.remove('auth', listenEvent);\n }\n if (autoSignInPollingIntervalId) {\n clearInterval(autoSignInPollingIntervalId);\n _this._storage.removeItem('amplify-polling-started');\n }\n _this._storage.removeItem('amplify-auto-sign-in');\n }, function (error) {\n logger.error(error);\n _this._storage.removeItem('amplify-auto-sign-in');\n }))];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Send the verification code to confirm sign up\n * @param {String} username - The username to be confirmed\n * @param {String} code - The verification code\n * @param {ConfirmSignUpOptions} options - other options for confirm signup\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.confirmSignUp = function (username, code, options) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var user = this.createCognitoUser(username);\n var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean'\n ? options.forceAliasCreation\n : true;\n var clientMetadata;\n if (options && options.clientMetadata) {\n clientMetadata = options.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n return new Promise(function (resolve, reject) {\n user.confirmRegistration(code, forceAliasCreation, function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n dispatchAuthEvent('confirmSignUp', data, username + \" has been confirmed successfully\");\n var autoSignIn = _this.isTrueStorageValue('amplify-auto-sign-in');\n if (autoSignIn && !_this.autoSignInInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.isTrueStorageValue = function (value) {\n var item = this._storage.getItem(value);\n return item ? item === 'true' : false;\n };\n /**\n * Resend the verification code\n * @param {String} username - The username to be confirmed\n * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers\n * @return - A promise resolves code delivery details if successful\n */\n AuthClass.prototype.resendSignUp = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.resendConfirmationCode(function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n /**\n * Sign in\n * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options\n * @param {String} pw - The password of the username\n * @param {ClientMetaData} clientMetadata - Client metadata for custom workflows\n * @return - A promise resolves the CognitoUser\n */\n AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var validationData = {};\n // for backward compatibility\n if (typeof usernameOrSignInOpts === 'string') {\n username = usernameOrSignInOpts;\n password = pw;\n }\n else if (isUsernamePasswordOpts(usernameOrSignInOpts)) {\n if (typeof pw !== 'undefined') {\n logger.warn('The password should be defined under the first parameter object!');\n }\n username = usernameOrSignInOpts.username;\n password = usernameOrSignInOpts.password;\n validationData = usernameOrSignInOpts.validationData;\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (password) {\n return this.signInWithPassword(authDetails);\n }\n else {\n return this.signInWithoutPassword(authDetails);\n }\n };\n /**\n * Return an object with the authentication callbacks\n * @param {CognitoUser} user - the cognito user object\n * @param {} resolve - function called when resolving the current step\n * @param {} reject - function called when rejecting the current step\n * @return - an object with the callback methods for user authentication\n */\n AuthClass.prototype.authCallbacks = function (user, resolve, reject) {\n var _this = this;\n var that = this;\n return {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_1, currentUser, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n delete user['challengeName'];\n delete user['challengeParam'];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 9]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 9];\n case 4:\n e_1 = _a.sent();\n logger.debug('cannot get cognito credentials', e_1);\n return [3 /*break*/, 9];\n case 5:\n _a.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 6:\n currentUser = _a.sent();\n that.user = currentUser;\n dispatchAuthEvent('signIn', currentUser, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(currentUser);\n return [3 /*break*/, 8];\n case 7:\n e_2 = _a.sent();\n logger.error('Failed to get the signed in user', e_2);\n reject(e_2);\n return [3 /*break*/, 8];\n case 8: return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('signIn failure', err);\n dispatchAuthEvent('signIn_failure', err, user.getUsername() + \" failed to signin\");\n reject(err);\n },\n customChallenge: function (challengeParam) {\n logger.debug('signIn custom challenge answer required');\n user['challengeName'] = 'CUSTOM_CHALLENGE';\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n newPasswordRequired: function (userAttributes, requiredAttributes) {\n logger.debug('signIn new password');\n user['challengeName'] = 'NEW_PASSWORD_REQUIRED';\n user['challengeParam'] = {\n userAttributes: userAttributes,\n requiredAttributes: requiredAttributes,\n };\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn totpRequired');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n selectMFAType: function (challengeName, challengeParam) {\n logger.debug('signIn selectMFAType', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n };\n };\n /**\n * Sign in with a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithPassword = function (authDetails) {\n var _this = this;\n if (this.pendingSignIn) {\n throw new Error('Pending sign-in attempt already in progress');\n }\n var user = this.createCognitoUser(authDetails.getUsername());\n this.pendingSignIn = new Promise(function (resolve, reject) {\n user.authenticateUser(authDetails, _this.authCallbacks(user, function (value) {\n _this.pendingSignIn = null;\n resolve(value);\n }, function (error) {\n _this.pendingSignIn = null;\n reject(error);\n }));\n });\n return this.pendingSignIn;\n };\n /**\n * Sign in without a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithoutPassword = function (authDetails) {\n var _this = this;\n var user = this.createCognitoUser(authDetails.getUsername());\n user.setAuthenticationFlowType('CUSTOM_AUTH');\n return new Promise(function (resolve, reject) {\n user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject));\n });\n };\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves the current preferred mfa option if success\n */\n AuthClass.prototype.getMFAOptions = function (user) {\n return new Promise(function (res, rej) {\n user.getMFAOptions(function (err, mfaOptions) {\n if (err) {\n logger.debug('get MFA Options failed', err);\n rej(err);\n return;\n }\n logger.debug('get MFA options success', mfaOptions);\n res(mfaOptions);\n return;\n });\n });\n };\n /**\n * get preferred mfa method\n * @param {CognitoUser} user - the current cognito user\n * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA\n */\n AuthClass.prototype.getPreferredMFA = function (user, params) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n var bypassCache = params ? params.bypassCache : false;\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_1, mfaType;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting preferred mfa failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_1 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_1.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n mfaType = that._getMfaTypeFromUserData(data);\n if (!mfaType) {\n rej('invalid MFA Type');\n return [2 /*return*/];\n }\n else {\n res(mfaType);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n });\n };\n AuthClass.prototype._getMfaTypeFromUserData = function (data) {\n var ret = null;\n var preferredMFA = data.PreferredMfaSetting;\n // if the user has used Auth.setPreferredMFA() to setup the mfa type\n // then the \"PreferredMfaSetting\" would exist in the response\n if (preferredMFA) {\n ret = preferredMFA;\n }\n else {\n // if mfaList exists but empty, then its noMFA\n var mfaList = data.UserMFASettingList;\n if (!mfaList) {\n // if SMS was enabled by using Auth.enableSMS(),\n // the response would contain MFAOptions\n // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA'\n // if it does not exist, then it should be NOMFA\n var MFAOptions = data.MFAOptions;\n if (MFAOptions) {\n ret = 'SMS_MFA';\n }\n else {\n ret = 'NOMFA';\n }\n }\n else if (mfaList.length === 0) {\n ret = 'NOMFA';\n }\n else {\n logger.debug('invalid case for getPreferredMFA', data);\n }\n }\n return ret;\n };\n AuthClass.prototype._getUserData = function (user, params) {\n var _this = this;\n return new Promise(function (res, rej) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_2 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_2.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n res(data);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, params);\n });\n };\n /**\n * set preferred MFA method\n * @param {CognitoUser} user - the current Cognito user\n * @param {string} mfaMethod - preferred mfa method\n * @return - A promise resolve if success\n */\n AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) {\n return __awaiter(this, void 0, void 0, function () {\n var clientMetadata, userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientMetadata = this._config.clientMetadata;\n return [4 /*yield*/, this._getUserData(user, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n })];\n case 1:\n userData = _b.sent();\n smsMfaSettings = null;\n totpMfaSettings = null;\n _a = mfaMethod;\n switch (_a) {\n case 'TOTP': return [3 /*break*/, 2];\n case 'SOFTWARE_TOKEN_MFA': return [3 /*break*/, 2];\n case 'SMS': return [3 /*break*/, 3];\n case 'SMS_MFA': return [3 /*break*/, 3];\n case 'NOMFA': return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n totpMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 3:\n smsMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 4:\n mfaList = userData['UserMFASettingList'];\n return [4 /*yield*/, this._getMfaTypeFromUserData(userData)];\n case 5:\n currentMFAType = _b.sent();\n if (currentMFAType === 'NOMFA') {\n return [2 /*return*/, Promise.resolve('No change for mfa type')];\n }\n else if (currentMFAType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else {\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.InvalidMFA)];\n }\n // if there is a UserMFASettingList in the response\n // we need to disable every mfa type in that list\n if (mfaList && mfaList.length !== 0) {\n // to disable SMS or TOTP if exists in that list\n mfaList.forEach(function (mfaType) {\n if (mfaType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n });\n }\n return [3 /*break*/, 7];\n case 6:\n logger.debug('no validmfa method provided');\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.NoMFA)];\n case 7:\n that = this;\n return [2 /*return*/, new Promise(function (res, rej) {\n user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) {\n if (err) {\n logger.debug('Set user mfa preference error', err);\n return rej(err);\n }\n logger.debug('Set user mfa success', result);\n logger.debug('Caching the latest user data into local');\n // cache the latest result into user data\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_3 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_3.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5: return [2 /*return*/, res(result)];\n }\n });\n }); }, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n });\n });\n })];\n }\n });\n });\n };\n /**\n * disable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.disableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.disableMFA(function (err, data) {\n if (err) {\n logger.debug('disable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('disable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * enable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.enableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.enableMFA(function (err, data) {\n if (err) {\n logger.debug('enable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('enable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * Setup TOTP\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves with the secret code if success\n */\n AuthClass.prototype.setupTOTP = function (user) {\n return new Promise(function (res, rej) {\n user.associateSoftwareToken({\n onFailure: function (err) {\n logger.debug('associateSoftwareToken failed', err);\n rej(err);\n return;\n },\n associateSecretCode: function (secretCode) {\n logger.debug('associateSoftwareToken success', secretCode);\n res(secretCode);\n return;\n },\n });\n });\n };\n /**\n * verify TOTP setup\n * @param {CognitoUser} user - the current user\n * @param {string} challengeAnswer - challenge answer\n * @return - A promise resolves is success\n */\n AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) {\n logger.debug('verification totp token', user, challengeAnswer);\n var signInUserSession;\n if (user && typeof user.getSignInUserSession === 'function') {\n signInUserSession = user.getSignInUserSession();\n }\n var isLoggedIn = signInUserSession === null || signInUserSession === void 0 ? void 0 : signInUserSession.isValid();\n return new Promise(function (res, rej) {\n user.verifySoftwareToken(challengeAnswer, 'My TOTP device', {\n onFailure: function (err) {\n logger.debug('verifyTotpToken failed', err);\n rej(err);\n return;\n },\n onSuccess: function (data) {\n if (!isLoggedIn) {\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n }\n dispatchAuthEvent('verify', user, \"A user \" + user.getUsername() + \" has been verified\");\n logger.debug('verifyTotpToken success', data);\n res(data);\n return;\n },\n });\n });\n };\n /**\n * Send MFA code to confirm sign in\n * @param {Object} user - The CognitoUser object\n * @param {String} code - The confirmation code\n */\n AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendMFACode(code, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_3, currentUser, e_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 10]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 10];\n case 4:\n e_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\n return [3 /*break*/, 10];\n case 5:\n that.user = user;\n _a.label = 6;\n case 6:\n _a.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 7:\n currentUser = _a.sent();\n user.attributes = currentUser.attributes;\n return [3 /*break*/, 9];\n case 8:\n e_4 = _a.sent();\n logger.debug('cannot get updated Cognito User', e_4);\n return [3 /*break*/, 9];\n case 9:\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('confirm signIn failure', err);\n reject(err);\n },\n }, mfaType, clientMetadata);\n });\n };\n AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) {\n var _this = this;\n if (requiredAttributes === void 0) { requiredAttributes = {}; }\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.completeNewPasswordChallenge(password, requiredAttributes, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_5 = _a.sent();\n logger.debug('cannot get cognito credentials', e_5);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('completeNewPassword failure', err);\n dispatchAuthEvent('completeNewPassword_failure', err, _this.user + \" failed to complete the new password flow\");\n reject(err);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n }, clientMetadata);\n });\n };\n /**\n * Send the answer to a custom challenge\n * @param {CognitoUser} user - The CognitoUser object\n * @param {String} challengeResponses - The confirmation code\n */\n AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!challengeResponses) {\n return this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata);\n });\n };\n /**\n * Delete an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.deleteUserAttributes = function (user, attributeNames) {\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n user.deleteAttributes(attributeNames, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n });\n });\n });\n };\n /**\n * Delete the current authenticated user\n * @return {Promise}\n **/\n // TODO: Check return type void\n AuthClass.prototype.deleteUser = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_6, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_6 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_6);\n throw new Error(e_6);\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var user_1;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.userPool) {\n user_1 = this.userPool.getCurrentUser();\n if (!user_1) {\n logger.debug('Failed to get user from user pool');\n return [2 /*return*/, rej(new Error('No current user.'))];\n }\n else {\n user_1.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_4;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user_1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_4 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_4.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user_1.deleteUser(function (err, result) {\n if (err) {\n rej(err);\n }\n else {\n dispatchAuthEvent('userDeleted', result, 'The authenticated user has been deleted.');\n user_1.signOut();\n _this.user = null;\n try {\n _this.cleanCachedItems(); // clean aws credentials\n }\n catch (e) {\n // TODO: change to rejects in refactor\n logger.debug('failed to clear cached items');\n }\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n dispatchAuthEvent('signOut', _this.user, \"A user has been signed out\");\n res(result);\n }\n }\n });\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); });\n }\n }\n else {\n logger.debug('no Congito User pool');\n rej(new Error('Cognito User pool does not exist'));\n }\n return [2 /*return*/];\n });\n }); })];\n }\n });\n });\n };\n /**\n * Update an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n var attributeList = [];\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n for (var key in attributes) {\n if (key !== 'sub' && key.indexOf('_verified') < 0) {\n var attr = {\n Name: key,\n Value: attributes[key],\n };\n attributeList.push(attr);\n }\n }\n user.updateAttributes(attributeList, function (err, result, details) {\n if (err) {\n dispatchAuthEvent('updateUserAttributes_failure', err, 'Failed to update attributes');\n return reject(err);\n }\n else {\n var attrs = _this.createUpdateAttributesResultList(attributes, details === null || details === void 0 ? void 0 : details.CodeDeliveryDetailsList);\n dispatchAuthEvent('updateUserAttributes', attrs, 'Attributes successfully updated');\n return resolve(result);\n }\n }, clientMetadata);\n });\n });\n };\n AuthClass.prototype.createUpdateAttributesResultList = function (attributes, codeDeliveryDetailsList) {\n var attrs = {};\n Object.keys(attributes).forEach(function (key) {\n attrs[key] = {\n isUpdated: true,\n };\n var codeDeliveryDetails = codeDeliveryDetailsList === null || codeDeliveryDetailsList === void 0 ? void 0 : codeDeliveryDetailsList.find(function (value) { return value.AttributeName === key; });\n if (codeDeliveryDetails) {\n attrs[key].isUpdated = false;\n attrs[key].codeDeliveryDetails = codeDeliveryDetails;\n }\n });\n return attrs;\n };\n /**\n * Return user attributes\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to user attributes if success\n */\n AuthClass.prototype.userAttributes = function (user) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.getUserAttributes(function (err, attributes) {\n if (err) {\n reject(err);\n }\n else {\n resolve(attributes);\n }\n });\n });\n });\n };\n AuthClass.prototype.verifiedContact = function (user) {\n var that = this;\n return this.userAttributes(user).then(function (attributes) {\n var attrs = that.attributesToObject(attributes);\n var unverified = {};\n var verified = {};\n if (attrs['email']) {\n if (attrs['email_verified']) {\n verified['email'] = attrs['email'];\n }\n else {\n unverified['email'] = attrs['email'];\n }\n }\n if (attrs['phone_number']) {\n if (attrs['phone_number_verified']) {\n verified['phone_number'] = attrs['phone_number'];\n }\n else {\n unverified['phone_number'] = attrs['phone_number'];\n }\n }\n return {\n verified: verified,\n unverified: unverified,\n };\n });\n };\n AuthClass.prototype.isErrorWithMessage = function (err) {\n return (typeof err === 'object' &&\n Object.prototype.hasOwnProperty.call(err, 'message'));\n };\n // Session revoked by another app\n AuthClass.prototype.isTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Access Token has been revoked');\n };\n AuthClass.prototype.isRefreshTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has been revoked');\n };\n AuthClass.prototype.isUserDisabledError = function (err) {\n return this.isErrorWithMessage(err) && err.message === 'User is disabled.';\n };\n AuthClass.prototype.isUserDoesNotExistError = function (err) {\n return (this.isErrorWithMessage(err) && err.message === 'User does not exist.');\n };\n AuthClass.prototype.isRefreshTokenExpiredError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has expired');\n };\n AuthClass.prototype.isPasswordResetRequiredError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Password reset required for the user');\n };\n AuthClass.prototype.isSignedInHostedUI = function () {\n return (this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true');\n };\n AuthClass.prototype.isSessionInvalid = function (err) {\n return (this.isUserDisabledError(err) ||\n this.isUserDoesNotExistError(err) ||\n this.isTokenRevokedError(err) ||\n this.isRefreshTokenRevokedError(err) ||\n this.isRefreshTokenExpiredError(err) ||\n this.isPasswordResetRequiredError(err));\n };\n AuthClass.prototype.cleanUpInvalidSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_7;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user.signOut();\n this.user = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 2:\n _a.sent(); // clean aws credentials\n return [3 /*break*/, 4];\n case 3:\n e_7 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 4];\n case 4:\n if (this.isSignedInHostedUI()) {\n return [2 /*return*/, new Promise(function (res, rej) {\n _this.oAuthSignOutRedirect(res, rej);\n })];\n }\n else {\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get current authenticated user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentUserPoolUser = function (params) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n return new Promise(function (res, rej) {\n _this._storageSync\n .then(function () { return __awaiter(_this, void 0, void 0, function () {\n var user, session, bypassCache, clientMetadata, _a, scope, err_1;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.isOAuthInProgress()) return [3 /*break*/, 2];\n logger.debug('OAuth signIn in progress, waiting for resolution...');\n return [4 /*yield*/, new Promise(function (res) {\n var timeoutId = setTimeout(function () {\n logger.debug('OAuth signIn in progress timeout');\n Hub.remove('auth', hostedUISignCallback);\n res();\n }, OAUTH_FLOW_MS_TIMEOUT);\n Hub.listen('auth', hostedUISignCallback);\n function hostedUISignCallback(_a) {\n var payload = _a.payload;\n var event = payload.event;\n if (event === 'cognitoHostedUI' ||\n event === 'cognitoHostedUI_failure') {\n logger.debug(\"OAuth signIn resolved: \" + event);\n clearTimeout(timeoutId);\n Hub.remove('auth', hostedUISignCallback);\n res();\n }\n }\n })];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n user = this.userPool.getCurrentUser();\n if (!user) {\n logger.debug('Failed to get user from user pool');\n rej('No current user');\n return [2 /*return*/];\n }\n _b.label = 3;\n case 3:\n _b.trys.push([3, 7, , 8]);\n return [4 /*yield*/, this._userSession(user)];\n case 4:\n session = _b.sent();\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3 /*break*/, 6];\n return [4 /*yield*/, this.Credentials.clear()];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6:\n clientMetadata = this._config.clientMetadata;\n _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a;\n if (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_5, preferredMFA, attributeList, i, attribute, userAttribute, attributes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 7];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_5 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_5.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [3 /*break*/, 6];\n case 5:\n res(user);\n _a.label = 6;\n case 6: return [2 /*return*/];\n case 7:\n preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n attributeList = [];\n for (i = 0; i < data.UserAttributes.length; i++) {\n attribute = {\n Name: data.UserAttributes[i].Name,\n Value: data.UserAttributes[i].Value,\n };\n userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n attributes = this.attributesToObject(attributeList);\n Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA });\n return [2 /*return*/, res(user)];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n }\n else {\n logger.debug(\"Unable to get the user data because the \" + USER_ADMIN_SCOPE + \" \" +\n \"is not in the scopes of the access token\");\n return [2 /*return*/, res(user)];\n }\n return [3 /*break*/, 8];\n case 7:\n err_1 = _b.sent();\n rej(err_1);\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n }); })\n .catch(function (e) {\n logger.debug('Failed to sync cache info into memory', e);\n return rej(e);\n });\n });\n };\n AuthClass.prototype.isOAuthInProgress = function () {\n return this.oAuthFlowInProgress;\n };\n /**\n * Get current authenticated user\n * @param {CurrentUserOpts} - options for getting the current user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentAuthenticatedUser = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var federatedUser, e_8, federatedInfo, user, e_9;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting current authenticated user');\n federatedUser = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_8 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_8);\n throw e_8;\n case 4:\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n if (federatedInfo) {\n federatedUser = __assign(__assign({}, federatedInfo.user), { token: federatedInfo.token });\n }\n }\n catch (e) {\n logger.debug('cannot load federated user from auth storage');\n }\n if (!federatedUser) return [3 /*break*/, 5];\n this.user = federatedUser;\n logger.debug('get current authenticated federated user', this.user);\n return [2 /*return*/, this.user];\n case 5:\n logger.debug('get current authenticated userpool user');\n user = null;\n _a.label = 6;\n case 6:\n _a.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.currentUserPoolUser(params)];\n case 7:\n user = _a.sent();\n return [3 /*break*/, 9];\n case 8:\n e_9 = _a.sent();\n if (e_9 === 'No userPool') {\n logger.error('Cannot get the current user because the user pool is missing. ' +\n 'Please make sure the Auth module is configured with a valid Cognito User Pool ID');\n }\n logger.debug('The user is not authenticated by the error', e_9);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 9:\n this.user = user;\n return [2 /*return*/, this.user];\n }\n });\n });\n };\n /**\n * Get current user's session\n * @return - A promise resolves to session object if success\n */\n AuthClass.prototype.currentSession = function () {\n var that = this;\n logger.debug('Getting current session');\n // Purposely not calling the reject method here because we don't need a console error\n if (!this.userPool) {\n return Promise.reject(new Error('No User Pool in the configuration.'));\n }\n return new Promise(function (res, rej) {\n that\n .currentUserPoolUser()\n .then(function (user) {\n that\n .userSession(user)\n .then(function (session) {\n res(session);\n return;\n })\n .catch(function (e) {\n logger.debug('Failed to get the current session', e);\n rej(e);\n return;\n });\n })\n .catch(function (e) {\n logger.debug('Failed to get the current user', e);\n rej(e);\n return;\n });\n });\n };\n AuthClass.prototype._userSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var clientMetadata, userSession;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!user) {\n logger.debug('the user is null');\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.NoUserSession)];\n }\n clientMetadata = this._config.clientMetadata;\n // Debouncing the concurrent userSession calls by caching the promise.\n // This solution assumes users will always call this function with the same CognitoUser instance.\n if (this.inflightSessionPromiseCounter === 0) {\n this.inflightSessionPromise = new Promise(function (res, rej) {\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the session from user', user);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_6 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_6.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n logger.debug('Succeed to get the user session', session);\n res(session);\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n });\n }\n this.inflightSessionPromiseCounter++;\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 3, 4]);\n return [4 /*yield*/, this.inflightSessionPromise];\n case 2:\n userSession = _a.sent();\n // Set private member. Avoid user.setSignInUserSession() to prevent excessive localstorage refresh.\n // @ts-ignore\n user.signInUserSession = userSession;\n return [2 /*return*/, userSession];\n case 3:\n this.inflightSessionPromiseCounter--;\n return [7 /*endfinally*/];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get the corresponding user session\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to the session\n */\n AuthClass.prototype.userSession = function (user) {\n return this._userSession(user);\n };\n /**\n * Get authenticated credentials of current user.\n * @return - A promise resolves to be current user's credentials\n */\n AuthClass.prototype.currentUserCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_10, federatedInfo;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Getting current user credentials');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_10 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_10);\n throw e_10;\n case 4:\n federatedInfo = null;\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n }\n catch (e) {\n logger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n }\n if (federatedInfo) {\n // refresh the jwt token here if necessary\n return [2 /*return*/, this.Credentials.refreshFederatedToken(federatedInfo)];\n }\n else {\n return [2 /*return*/, this.currentSession()\n .then(function (session) {\n logger.debug('getting session success', session);\n return _this.Credentials.set(session, 'session');\n })\n .catch(function () {\n logger.debug('getting guest credentials');\n return _this.Credentials.set(null, 'guest');\n })];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.currentCredentials = function () {\n logger.debug('getting current credentials');\n return this.Credentials.get();\n };\n /**\n * Initiate an attribute confirmation request\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attributes to be verified\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n user.getAttributeVerificationCode(attr, {\n onSuccess: function (success) {\n return resolve(success);\n },\n onFailure: function (err) {\n return reject(err);\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm an attribute using a confirmation code\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) {\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n return new Promise(function (resolve, reject) {\n user.verifyAttribute(attr, code, {\n onSuccess: function (data) {\n resolve(data);\n return;\n },\n onFailure: function (err) {\n reject(err);\n return;\n },\n });\n });\n };\n AuthClass.prototype.verifyCurrentUserAttribute = function (attr) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttribute(user, attr); });\n };\n /**\n * Confirm current user's attribute using a confirmation code\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); });\n };\n AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_11, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_11 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_11);\n throw e_11;\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) {\n if (opts && opts.global) {\n logger.debug('user global sign out', user);\n // in order to use global signout\n // we must validate the user as an authenticated user by using getSession\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n user.getSession(function (err, result) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_7;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_7 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_7.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user.globalSignOut({\n onSuccess: function (data) {\n logger.debug('global sign out success');\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n },\n onFailure: function (err) {\n logger.debug('global sign out failed', err);\n return rej(err);\n },\n });\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n }\n else {\n logger.debug('user sign out', user);\n user.signOut(function () {\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n });\n }\n })];\n }\n });\n });\n };\n AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) {\n var isBrowser = browserOrNode().isBrowser;\n if (isBrowser) {\n this.oAuthSignOutRedirectOrReject(reject);\n }\n else {\n this.oAuthSignOutAndResolve(resolve);\n }\n };\n AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) {\n this._oAuthHandler.signOut();\n resolve();\n };\n AuthClass.prototype.oAuthSignOutRedirectOrReject = function (reject) {\n this._oAuthHandler.signOut(); // this method redirects url\n // App should be redirected to another url otherwise it will reject\n setTimeout(function () { return reject(Error('Signout timeout fail')); }, 3000);\n };\n /**\n * Sign out method\n * @\n * @return - A promise resolved if success\n */\n AuthClass.prototype.signOut = function (opts) {\n return __awaiter(this, void 0, void 0, function () {\n var e_12, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_12 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 3];\n case 3:\n if (!this.userPool) return [3 /*break*/, 7];\n user = this.userPool.getCurrentUser();\n if (!user) return [3 /*break*/, 5];\n return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n logger.debug('no current Cognito user');\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n logger.debug('no Cognito User pool');\n _a.label = 8;\n case 8:\n /**\n * Note for future refactor - no reliable way to get username with\n * Cognito User Pools vs Identity when federating with Social Providers\n * This is why we need a well structured session object that can be inspected\n * and information passed back in the message below for Hub dispatch\n */\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n this.user = null;\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.cleanCachedItems = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // clear cognito cached item\n return [4 /*yield*/, this.Credentials.clear()];\n case 1:\n // clear cognito cached item\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Change a password for an authenticated user\n * @param {Object} user - The CognitoUser object\n * @param {String} oldPassword - the current password\n * @param {String} newPassword - the requested new password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.changePassword(oldPassword, newPassword, function (err, data) {\n if (err) {\n logger.debug('change password failure', err);\n return reject(err);\n }\n else {\n return resolve(data);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Initiate a forgot password request\n * @param {String} username - the username to change password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.forgotPassword = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.forgotPassword({\n onSuccess: function () {\n resolve();\n return;\n },\n onFailure: function (err) {\n logger.debug('forgot password failure', err);\n dispatchAuthEvent('forgotPassword_failure', err, username + \" forgotPassword failed\");\n reject(err);\n return;\n },\n inputVerificationCode: function (data) {\n dispatchAuthEvent('forgotPassword', user, username + \" has initiated forgot password flow\");\n resolve(data);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm a new password using a confirmation Code\n * @param {String} username - The username\n * @param {String} code - The confirmation code\n * @param {String} password - The new password\n * @return - A promise that resolves if success\n */\n AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.confirmPassword(code, password, {\n onSuccess: function (success) {\n dispatchAuthEvent('forgotPasswordSubmit', user, username + \" forgotPasswordSubmit successful\");\n resolve(success);\n return;\n },\n onFailure: function (err) {\n dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + \" forgotPasswordSubmit failed\");\n reject(err);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Get user information\n * @async\n * @return {Object }- current User's information\n */\n AuthClass.prototype.currentUserInfo = function () {\n return __awaiter(this, void 0, void 0, function () {\n var source, user, attributes, userAttrs, credentials, e_13, info, err_2, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n source = this.Credentials.getCredSource();\n if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9];\n return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) {\n return logger.error(err);\n })];\n case 1:\n user = _a.sent();\n if (!user) {\n return [2 /*return*/, null];\n }\n _a.label = 2;\n case 2:\n _a.trys.push([2, 8, , 9]);\n return [4 /*yield*/, this.userAttributes(user)];\n case 3:\n attributes = _a.sent();\n userAttrs = this.attributesToObject(attributes);\n credentials = null;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.currentCredentials()];\n case 5:\n credentials = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n e_13 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_13);\n return [3 /*break*/, 7];\n case 7:\n info = {\n id: credentials ? credentials.identityId : undefined,\n username: user.getUsername(),\n attributes: userAttrs,\n };\n return [2 /*return*/, info];\n case 8:\n err_2 = _a.sent();\n logger.error('currentUserInfo error', err_2);\n return [2 /*return*/, {}];\n case 9:\n if (source === 'federated') {\n user = this.user;\n return [2 /*return*/, user ? user : {}];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) {\n return __awaiter(this, void 0, void 0, function () {\n var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation requires either a User Pool or Identity Pool in config\");\n }\n // Ensure backwards compatability\n if (typeof providerOrOptions === 'undefined') {\n if (this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation with Identity Pools requires tokens passed as arguments\");\n }\n }\n if (!(isFederatedSignInOptions(providerOrOptions) ||\n isFederatedSignInOptionsCustom(providerOrOptions) ||\n hasCustomState(providerOrOptions) ||\n typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1];\n options = providerOrOptions || {\n provider: CognitoHostedUIIdentityProvider.Cognito,\n };\n provider = isFederatedSignInOptions(options)\n ? options.provider\n : options.customProvider;\n customState = isFederatedSignInOptions(options)\n ? options.customState\n : options.customState;\n if (this._config.userPoolId) {\n client_id = isCognitoHostedOpts(this._config.oauth)\n ? this._config.userPoolWebClientId\n : this._config.oauth.clientID;\n redirect_uri = isCognitoHostedOpts(this._config.oauth)\n ? this._config.oauth.redirectSignIn\n : this._config.oauth.redirectUri;\n this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState);\n }\n return [3 /*break*/, 4];\n case 1:\n provider = providerOrOptions;\n // To check if the user is already logged in\n try {\n loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user);\n if (loggedInUser) {\n logger.warn(\"There is already a signed in user: \" + loggedInUser + \" in your app.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior.\");\n }\n }\n catch (e) { }\n token = response.token, identity_id = response.identity_id, expires_at = response.expires_at;\n return [4 /*yield*/, this.Credentials.set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')];\n case 2:\n credentials = _a.sent();\n return [4 /*yield*/, this.currentAuthenticatedUser()];\n case 3:\n currentUser = _a.sent();\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.username + \" has been signed in\");\n logger.debug('federated sign in credentials', credentials);\n return [2 /*return*/, credentials];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Used to complete the OAuth flow with or without the Cognito Hosted UI\n * @param {String} URL - optional parameter for customers to pass in the response URL\n */\n AuthClass.prototype._handleAuthResponse = function (URL) {\n return __awaiter(this, void 0, void 0, function () {\n var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, customState, err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.oAuthFlowInProgress) {\n logger.debug(\"Skipping URL \" + URL + \" current flow in progress\");\n return [2 /*return*/];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 8, 9]);\n this.oAuthFlowInProgress = true;\n if (!this._config.userPoolId) {\n throw new Error(\"OAuth responses require a User Pool defined in config\");\n }\n dispatchAuthEvent('parsingCallbackUrl', { url: URL }, \"The callback url is being parsed\");\n currentUrl = URL || (browserOrNode().isBrowser ? window.location.href : '');\n hasCodeOrError = !!(parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'code' || k === 'error';\n });\n hasTokenOrError = !!(parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'access_token' || k === 'error';\n });\n if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 7];\n this._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n _b.label = 2;\n case 2:\n _b.trys.push([2, 6, , 7]);\n return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)];\n case 3:\n _a = _b.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state;\n session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: idToken }),\n RefreshToken: new CognitoRefreshToken({\n RefreshToken: refreshToken,\n }),\n AccessToken: new CognitoAccessToken({\n AccessToken: accessToken,\n }),\n });\n credentials = void 0;\n if (!this._config.identityPoolId) return [3 /*break*/, 5];\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 4:\n credentials = _b.sent();\n logger.debug('AWS credentials', credentials);\n _b.label = 5;\n case 5:\n isCustomStateIncluded = /-/.test(state);\n currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']);\n // This calls cacheTokens() in Cognito SDK\n currentUser.setSignInUserSession(session);\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in\");\n dispatchAuthEvent('cognitoHostedUI', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in via Cognito Hosted UI\");\n if (isCustomStateIncluded) {\n customState = state.split('-').splice(1).join('-');\n dispatchAuthEvent('customOAuthState', urlSafeDecode(customState), \"State for user \" + currentUser.getUsername());\n }\n //#endregion\n return [2 /*return*/, credentials];\n case 6:\n err_3 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_3);\n // Just like a successful handling of `?code`, replace the window history to \"dispose\" of the `code`.\n // Otherwise, reloading the page will throw errors as the `code` has already been spent.\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn_failure', err_3, \"The OAuth response flow failed\");\n dispatchAuthEvent('cognitoHostedUI_failure', err_3, \"A failure occurred when returning to the Cognito Hosted UI\");\n dispatchAuthEvent('customState_failure', err_3, \"A failure occurred when returning state\");\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 9];\n case 8:\n this.oAuthFlowInProgress = false;\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n AuthClass.prototype.essentialCredentials = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n AuthClass.prototype.attributesToObject = function (attributes) {\n var _this = this;\n var obj = {};\n if (attributes) {\n attributes.map(function (attribute) {\n if (attribute.Name === 'email_verified' ||\n attribute.Name === 'phone_number_verified') {\n obj[attribute.Name] =\n _this.isTruthyString(attribute.Value) || attribute.Value === true;\n }\n else {\n obj[attribute.Name] = attribute.Value;\n }\n });\n }\n return obj;\n };\n AuthClass.prototype.isTruthyString = function (value) {\n return (typeof value.toLowerCase === 'function' && value.toLowerCase() === 'true');\n };\n AuthClass.prototype.createCognitoUser = function (username) {\n var userData = {\n Username: username,\n Pool: this.userPool,\n };\n userData.Storage = this._storage;\n var authenticationFlowType = this._config.authenticationFlowType;\n var user = new CognitoUser(userData);\n if (authenticationFlowType) {\n user.setAuthenticationFlowType(authenticationFlowType);\n }\n return user;\n };\n AuthClass.prototype._isValidAuthStorage = function (obj) {\n // We need to check if the obj has the functions of Storage\n return (!!obj &&\n typeof obj.getItem === 'function' &&\n typeof obj.setItem === 'function' &&\n typeof obj.removeItem === 'function' &&\n typeof obj.clear === 'function');\n };\n AuthClass.prototype.noUserPoolErrorHandler = function (config) {\n if (config) {\n if (!config.userPoolId || !config.identityPoolId) {\n return AuthErrorTypes.MissingAuthConfig;\n }\n }\n return AuthErrorTypes.NoConfig;\n };\n AuthClass.prototype.rejectAuthError = function (type) {\n return Promise.reject(new AuthError(type));\n };\n AuthClass.prototype.rejectNoUserPool = function () {\n var type = this.noUserPoolErrorHandler(this._config);\n return Promise.reject(new NoUserPoolError(type));\n };\n AuthClass.prototype.rememberDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_2);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.setDeviceStatusRemembered({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.forgetDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_3);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.forgetDevice({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.fetchDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_4 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_4);\n throw new Error('The user is not authenticated');\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n var cb = {\n onSuccess: function (data) {\n var deviceList = data.Devices.map(function (device) {\n var deviceName = device.DeviceAttributes.find(function (_a) {\n var Name = _a.Name;\n return Name === 'device_name';\n }) || {};\n var deviceInfo = {\n id: device.DeviceKey,\n name: deviceName.Value,\n };\n return deviceInfo;\n });\n res(deviceList);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n };\n currUser.listDevices(MAX_DEVICES, null, cb);\n })];\n }\n });\n });\n };\n return AuthClass;\n}());\nexport { AuthClass };\nexport var Auth = new AuthClass(null);\nAmplify.register(Auth);\n//# sourceMappingURL=Auth.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode } from '@aws-amplify/core';\nexport default (function (callback) {\n if (browserOrNode().isBrowser && window.location) {\n var url = window.location.href;\n callback({ url: url });\n }\n else if (browserOrNode().isNode) {\n // continue building on ssr\n (function () { }); // noop\n }\n else {\n throw new Error('Not supported');\n }\n});\n//# sourceMappingURL=urlListener.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var CognitoHostedUIIdentityProvider;\n(function (CognitoHostedUIIdentityProvider) {\n CognitoHostedUIIdentityProvider[\"Cognito\"] = \"COGNITO\";\n CognitoHostedUIIdentityProvider[\"Google\"] = \"Google\";\n CognitoHostedUIIdentityProvider[\"Facebook\"] = \"Facebook\";\n CognitoHostedUIIdentityProvider[\"Amazon\"] = \"LoginWithAmazon\";\n CognitoHostedUIIdentityProvider[\"Apple\"] = \"SignInWithApple\";\n})(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {}));\nexport function isFederatedSignInOptions(obj) {\n var keys = ['provider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isFederatedSignInOptionsCustom(obj) {\n var keys = ['customProvider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function hasCustomState(obj) {\n var keys = ['customState'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isCognitoHostedOpts(oauth) {\n return oauth.redirectSignIn !== undefined;\n}\nexport var AuthErrorTypes;\n(function (AuthErrorTypes) {\n AuthErrorTypes[\"NoConfig\"] = \"noConfig\";\n AuthErrorTypes[\"MissingAuthConfig\"] = \"missingAuthConfig\";\n AuthErrorTypes[\"EmptyUsername\"] = \"emptyUsername\";\n AuthErrorTypes[\"InvalidUsername\"] = \"invalidUsername\";\n AuthErrorTypes[\"EmptyPassword\"] = \"emptyPassword\";\n AuthErrorTypes[\"EmptyCode\"] = \"emptyCode\";\n AuthErrorTypes[\"SignUpError\"] = \"signUpError\";\n AuthErrorTypes[\"NoMFA\"] = \"noMFA\";\n AuthErrorTypes[\"InvalidMFA\"] = \"invalidMFA\";\n AuthErrorTypes[\"EmptyChallengeResponse\"] = \"emptyChallengeResponse\";\n AuthErrorTypes[\"NoUserSession\"] = \"noUserSession\";\n AuthErrorTypes[\"Default\"] = \"default\";\n AuthErrorTypes[\"DeviceConfig\"] = \"deviceConfig\";\n AuthErrorTypes[\"NetworkError\"] = \"networkError\";\n AuthErrorTypes[\"AutoSignInError\"] = \"autoSignInError\";\n})(AuthErrorTypes || (AuthErrorTypes = {}));\nexport function isUsernamePasswordOpts(obj) {\n return !!obj.username;\n}\nexport var GRAPHQL_AUTH_MODE;\n(function (GRAPHQL_AUTH_MODE) {\n GRAPHQL_AUTH_MODE[\"API_KEY\"] = \"API_KEY\";\n GRAPHQL_AUTH_MODE[\"AWS_IAM\"] = \"AWS_IAM\";\n GRAPHQL_AUTH_MODE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n GRAPHQL_AUTH_MODE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n GRAPHQL_AUTH_MODE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(GRAPHQL_AUTH_MODE || (GRAPHQL_AUTH_MODE = {}));\n//# sourceMappingURL=Auth.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Notifications = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar GoogleOAuth = /** @class */ (function () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\n GoogleOAuth.prototype.refreshGoogleToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser)\n ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n return new Promise(function (res, rej) {\n ga.getAuthInstance()\n .then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n var googleUser = googleAuth.currentUser.get();\n // refresh the token\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser\n .reloadAuthResponse()\n .then(function (authResponse) {\n var id_token = authResponse.id_token, expires_at = authResponse.expires_at;\n res({ token: id_token, expires_at: expires_at });\n })\n .catch(function (err) {\n if (err && err.error === 'network_error') {\n // Not using NonRetryableError so handler will be retried\n rej('Network error reloading google auth response');\n }\n else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n }\n else {\n rej(new NonRetryableError('User is not signed in with Google'));\n }\n })\n .catch(function (err) {\n logger.debug('Failed to refresh google token', err);\n rej(new NonRetryableError('Failed to refresh google token'));\n });\n });\n };\n return GoogleOAuth;\n}());\nexport { GoogleOAuth };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var fb = window['FB'];\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar FacebookOAuth = /** @class */ (function () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\n FacebookOAuth.prototype.refreshFacebookToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser)\n fb = window['FB'];\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\n return new Promise(function (res, rej) {\n fb.getLoginStatus(function (fbResponse) {\n if (!fbResponse || !fbResponse.authResponse) {\n var errorMessage = 'no response from facebook when refreshing the jwt token';\n logger.debug(errorMessage);\n // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n rej(new NonRetryableError(errorMessage));\n }\n else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken, expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n res({\n token: accessToken,\n expires_at: expires_at,\n });\n }\n }, { scope: 'public_profile,email' });\n });\n };\n return FacebookOAuth;\n}());\nexport { FacebookOAuth };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddleware } from '../middleware/retry';\nimport { userAgentMiddleware } from '../middleware/userAgent';\nimport { composeTransferHandler } from '../internal/composeTransferHandler';\nimport { fetchTransferHandler } from './fetch';\nexport var unauthenticatedHandler = composeTransferHandler(fetchTransferHandler, [userAgentMiddleware, retryMiddleware]);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { getDnsSuffix, unauthenticatedHandler, parseJsonError, } from '../../clients';\nimport { composeTransferHandler } from '../../clients/internal/composeTransferHandler';\nimport { jitteredBackoff, getRetryDecider, } from '../../clients/middleware/retry';\nimport { getAmplifyUserAgent } from '../../Platform';\nimport { observeFrameworkChanges } from '../../Platform/detectFramework';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nvar SERVICE_NAME = 'cognito-identity';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nvar endpointResolver = function (_a) {\n var region = _a.region;\n return ({\n url: new URL(\"https://cognito-identity.\".concat(region, \".\").concat(getDnsSuffix(region))),\n });\n};\n/**\n * A Cognito Identity-specific middleware that disables caching for all requests.\n */\nvar disableCacheMiddleware = function () { return function (next, context) {\n return function disableCacheMiddleware(request) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n request.headers['cache-control'] = 'no-store';\n return [2 /*return*/, next(request)];\n });\n });\n };\n}; };\n/**\n * A Cognito Identity-specific transfer handler that does NOT sign requests, and\n * disables caching.\n *\n * @internal\n */\nexport var cognitoIdentityTransferHandler = composeTransferHandler(unauthenticatedHandler, [disableCacheMiddleware]);\n/**\n * @internal\n */\nexport var defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver: endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n};\nobserveFrameworkChanges(function () {\n defaultConfig.userAgentValue = getAmplifyUserAgent();\n});\n/**\n * @internal\n */\nexport var getSharedHeaders = function (operation) { return ({\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': \"AWSCognitoIdentityService.\".concat(operation),\n}); };\n/**\n * @internal\n */\nexport var buildHttpRpcRequest = function (_a, headers, body) {\n var url = _a.url;\n return ({\n headers: headers,\n url: url,\n body: body,\n method: 'POST',\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nvar getIdSerializer = function (input, endpoint) {\n var headers = getSharedHeaders('GetId');\n var body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nvar getIdDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, body;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseJsonError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseJsonBody(response)];\n case 3:\n body = _a.sent();\n return [2 /*return*/, {\n IdentityId: body.IdentityId,\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\n/**\n * @internal\n */\nexport var getId = composeServiceApi(cognitoIdentityTransferHandler, getIdSerializer, getIdDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nvar getCredentialsForIdentitySerializer = function (input, endpoint) {\n var headers = getSharedHeaders('GetCredentialsForIdentity');\n var body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nvar getCredentialsForIdentityDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, body;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseJsonError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseJsonBody(response)];\n case 3:\n body = _a.sent();\n return [2 /*return*/, {\n IdentityId: body.IdentityId,\n Credentials: deserializeCredentials(body.Credentials),\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\nvar deserializeCredentials = function (output) {\n if (output === void 0) { output = {}; }\n return ({\n AccessKeyId: output['AccessKeyId'],\n SecretKey: output['SecretKey'],\n SessionToken: output['SessionToken'],\n Expiration: new Date(output['Expiration'] * 1000),\n });\n};\n/**\n * @internal\n */\nexport var getCredentialsForIdentity = composeServiceApi(cognitoIdentityTransferHandler, getCredentialsForIdentitySerializer, getCredentialsForIdentityDeserializer, defaultConfig);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { getId, getCredentialsForIdentity } from './AwsClients/CognitoIdentity';\nimport { parseAWSExports } from './parseAWSExports';\nimport { Hub } from './Hub';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchCredentialsEvent = function (event, data, message) {\n Hub.dispatch('core', { event: event, data: data, message: message }, 'Credentials', AMPLIFY_SYMBOL);\n};\nvar CredentialsClass = /** @class */ (function () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {};\n // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n CredentialsClass.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers;\n // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n this._storage = this._config.storage;\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n dispatchCredentialsEvent('credentials_configured', null, \"Credentials has been configured successfully\");\n return this._config;\n };\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n };\n // currently we only store the guest identity in local storage\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\".concat(COGNITO_IDENTITY_KEY_PREFIX).concat(identityPoolId);\n };\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n }\n else {\n logger.debug('getting old cred promise');\n }\n return this._gettingCredPromise;\n };\n CredentialsClass.prototype._keepAlive = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cred, _a, Auth, user_1, session, refreshToken_1, refreshRequest, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('checking if credentials exists and not expired');\n cred = this._credentials;\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2 /*return*/, Promise.resolve(cred)];\n }\n logger.debug('need to get a new credential or refresh the existing one');\n _a = this.Auth, Auth = _a === void 0 ? Amplify.Auth : _a;\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n // If Auth module is not imported, do a best effort to get guest credentials\n return [2 /*return*/, this._setCredentialsForGuest()];\n }\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3 /*break*/, 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, Auth.currentUserPoolUser()];\n case 2:\n user_1 = _b.sent();\n return [4 /*yield*/, Auth.currentSession()];\n case 3:\n session = _b.sent();\n refreshToken_1 = session.refreshToken;\n refreshRequest = new Promise(function (res, rej) {\n user_1.refreshSession(refreshToken_1, function (err, data) {\n return err ? rej(err) : res(data);\n });\n });\n return [4 /*yield*/, refreshRequest];\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n return [3 /*break*/, 6];\n case 5:\n err_1 = _b.sent();\n // should not throw because user might just be on guest access or is authenticated through federation\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/, Auth.currentUserCredentials()];\n }\n });\n });\n };\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at;\n // Make sure expires_at is in millis\n expires_at =\n new Date(expires_at).getFullYear() === 1970\n ? expires_at * 1000\n : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n if (expires_at > new Date().getTime()) {\n // if not expired\n logger.debug('token not expired');\n return this._setCredentialsFromFederation({\n provider: provider,\n token: token,\n user: user,\n identity_id: identity_id,\n expires_at: expires_at,\n });\n }\n else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] &&\n typeof that._refreshHandlers[provider] === 'function') {\n logger.debug('getting refreshed jwt token from federation provider');\n return this._providerRefreshWithRetry({\n refreshHandler: that._refreshHandlers[provider],\n provider: provider,\n user: user,\n });\n }\n else {\n logger.debug('no refresh handler for provider:', provider);\n this.clear();\n return Promise.reject('no refresh handler for provider');\n }\n }\n };\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user;\n var MAX_DELAY_MS = 10 * 1000;\n // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n .then(function (data) {\n logger.debug('refresh federated token sucessfully', data);\n return _this._setCredentialsFromFederation({\n provider: provider,\n token: data.token,\n user: user,\n identity_id: data.identity_id,\n expires_at: data.expires_at,\n });\n })\n .catch(function (e) {\n var isNetworkError = typeof e === 'string' &&\n e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n if (!isNetworkError) {\n _this.clear();\n }\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\n logger.debug('are these credentials expired?', credentials);\n var ts = Date.now();\n /* returns date object.\n https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n */\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\n CredentialsClass.prototype._setCredentialsForGuest = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var _b, identityPoolId, region, mandatorySignIn, identityPoolRegion, identityId, _c, cognitoConfig, guestCredentialsProvider, credentials;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n logger.debug('setting credentials for guest');\n if (!((_a = this._config) === null || _a === void 0 ? void 0 : _a.identityPoolId)) {\n // If Credentials are not configured thru Auth module,\n // doing best effort to check if the library was configured\n this._config = Object.assign({}, this._config, parseAWSExports(this._config || {}).Auth);\n }\n _b = this._config, identityPoolId = _b.identityPoolId, region = _b.region, mandatorySignIn = _b.mandatorySignIn, identityPoolRegion = _b.identityPoolRegion;\n if (mandatorySignIn) {\n return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n if (!identityPoolRegion && !region) {\n logger.debug('region is not configured for getting the credentials');\n return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')];\n }\n _c = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_c._identityId = _d.sent());\n cognitoConfig = { region: identityPoolRegion !== null && identityPoolRegion !== void 0 ? identityPoolRegion : region };\n guestCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, Credentials;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!identityId) return [3 /*break*/, 2];\n return [4 /*yield*/, getId(cognitoConfig, {\n IdentityPoolId: identityPoolId,\n })];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n _a.label = 2;\n case 2: return [4 /*yield*/, getCredentialsForIdentity(cognitoConfig, {\n IdentityId: this._identityId,\n })];\n case 3:\n Credentials = (_a.sent()).Credentials;\n return [2 /*return*/, {\n identityId: this._identityId,\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n }];\n }\n });\n }); };\n credentials = guestCredentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)\n .then(function (res) {\n return res;\n })\n .catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\n var guestCredentialsProvider_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' &&\n e.message === \"Identity '\".concat(identityId, \"' not found.\"))) return [3 /*break*/, 2];\n logger.debug('Failed to load guest credentials');\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 1:\n _a.sent();\n guestCredentialsProvider_1 = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, Credentials;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getId(cognitoConfig, {\n IdentityPoolId: identityPoolId,\n })];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n return [4 /*yield*/, getCredentialsForIdentity(cognitoConfig, {\n IdentityId: IdentityId,\n })];\n case 2:\n Credentials = (_a.sent()).Credentials;\n return [2 /*return*/, {\n identityId: IdentityId,\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n }];\n }\n });\n }); };\n credentials = guestCredentialsProvider_1().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)];\n case 2: return [2 /*return*/, e];\n }\n });\n }); })];\n }\n });\n });\n };\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var _this = this;\n var provider = params.provider, token = params.token;\n var identity_id = params.identity_id;\n var domains = {\n google: 'accounts.google.com',\n facebook: 'graph.facebook.com',\n amazon: 'www.amazon.com',\n developer: 'cognito-identity.amazonaws.com',\n };\n // Use custom provider url instead of the predefined ones\n var domain = domains[provider] || provider;\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n var logins = {};\n logins[domain] = token;\n var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, identityPoolRegion = _a.identityPoolRegion;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!identityPoolRegion && !region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var cognitoConfig = { region: identityPoolRegion !== null && identityPoolRegion !== void 0 ? identityPoolRegion : region };\n var authenticatedCredentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, Credentials;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!identity_id) return [3 /*break*/, 2];\n return [4 /*yield*/, getId(cognitoConfig, {\n IdentityPoolId: identityPoolId,\n Logins: logins,\n })];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n identity_id = IdentityId;\n _a.label = 2;\n case 2: return [4 /*yield*/, getCredentialsForIdentity(cognitoConfig, {\n IdentityId: identity_id,\n Logins: logins,\n })];\n case 3:\n Credentials = (_a.sent()).Credentials;\n return [2 /*return*/, {\n identityId: identity_id,\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n }];\n }\n });\n }); };\n var credentials = authenticatedCredentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId, identityPoolRegion = _a.identityPoolRegion;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!identityPoolRegion && !region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoConfig = { region: identityPoolRegion !== null && identityPoolRegion !== void 0 ? identityPoolRegion : region };\n /*\n Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n https://git.io/JeDxU\n\n Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3 /*break*/, 3];\n return [4 /*yield*/, getId(cognitoConfig, {\n IdentityPoolId: identityPoolId,\n Logins: logins,\n })];\n case 2:\n IdentityId = (_c.sent()).IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n case 3: return [4 /*yield*/, getCredentialsForIdentity(cognitoConfig, {\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins,\n })];\n case 4:\n _a = _c.sent(), _b = _a.Credentials, AccessKeyId = _b.AccessKeyId, Expiration = _b.Expiration, SecretKey = _b.SecretKey, SessionToken = _b.SessionToken, primaryIdentityId = _a.IdentityId;\n this._identityId = primaryIdentityId;\n if (!guestIdentityId) return [3 /*break*/, 6];\n // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n logger.debug(\"The guest identity \".concat(guestIdentityId, \" has been successfully linked to the logins\"));\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \".concat(guestIdentityId, \" has become the primary identity\"));\n }\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n _c.label = 6;\n case 6: \n // https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId,\n }];\n }\n });\n }); };\n var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n credentials\n .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () {\n var user, provider, token, expires_at, identity_id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Load credentials successfully', credentials);\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n if (source === 'federated') {\n user = Object.assign({ id: this._credentials.identityId }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n try {\n this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({\n provider: provider,\n token: token,\n user: user,\n expires_at: expires_at,\n identity_id: identity_id,\n }));\n }\n catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n if (!(source === 'guest')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._setGuestIdentityId(credentials.identityId)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n res(that._credentials);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n if (err) {\n logger.debug('Failed to load credentials', credentials);\n logger.debug('Error loading credentials', err);\n rej(err);\n return;\n }\n });\n });\n };\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n }\n else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n }\n else if (source === 'guest') {\n return this._setCredentialsForGuest();\n }\n else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\n };\n CredentialsClass.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._credentials = null;\n this._credentials_source = null;\n logger.debug('removing aws-amplify-federatedInfo from storage');\n this._storage.removeItem('aws-amplify-federatedInfo');\n return [2 /*return*/];\n });\n });\n };\n /* operations on local stored guest identity */\n CredentialsClass.prototype._getGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [2 /*return*/, this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._setGuestIdentityId = function (identityId) {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._removeGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId;\n return __generator(this, function (_a) {\n identityPoolId = this._config.identityPoolId;\n logger.debug(\"removing \".concat(this._getCognitoIdentityIdStorageKey(identityPoolId), \" from storage\"));\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n return [2 /*return*/];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n CredentialsClass.prototype.shear = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n return CredentialsClass;\n}());\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nfunction isLegacyCallback(callback) {\n return callback.onHubCapsule !== undefined;\n}\nvar HubClass = /** @class */ (function () {\n function HubClass(name) {\n this.listeners = [];\n this.patterns = [];\n this.protectedChannels = [\n 'core',\n 'auth',\n 'api',\n 'analytics',\n 'interactions',\n 'pubsub',\n 'storage',\n 'ui',\n 'xr',\n ];\n this.name = name;\n }\n /**\n * Used internally to remove a Hub listener.\n *\n * @remarks\n * This private method is for internal use only. Instead of calling Hub.remove, call the result of Hub.listen.\n */\n HubClass.prototype._remove = function (channel, listener) {\n if (channel instanceof RegExp) {\n var pattern_1 = this.patterns.find(function (_a) {\n var pattern = _a.pattern;\n return pattern.source === channel.source;\n });\n if (!pattern_1) {\n logger.warn(\"No listeners for \".concat(channel));\n return;\n }\n this.patterns = __spreadArray([], __read(this.patterns.filter(function (x) { return x !== pattern_1; })), false);\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n logger.warn(\"No listeners for \".concat(channel));\n return;\n }\n this.listeners[channel] = __spreadArray([], __read(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n })), false);\n }\n };\n /**\n * @deprecated Instead of calling Hub.remove, call the result of Hub.listen.\n */\n HubClass.prototype.remove = function (channel, listener) {\n this._remove(channel, listener);\n };\n /**\n * Used to send a Hub event.\n *\n * @param channel - The channel on which the event will be broadcast\n * @param payload - The HubPayload\n * @param source - The source of the event; defaults to ''\n * @param ampSymbol - Symbol used to determine if the event is dispatched internally on a protected channel\n *\n */\n HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) {\n if (source === void 0) { source = ''; }\n if (this.protectedChannels.indexOf(channel) > -1) {\n var hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n if (!hasAccess) {\n logger.warn(\"WARNING: \".concat(channel, \" is protected and dispatching on it can have unintended consequences\"));\n }\n }\n var capsule = {\n channel: channel,\n payload: __assign({}, payload),\n source: source,\n patternInfo: [],\n };\n try {\n this._toListeners(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n };\n /**\n * Used to listen for Hub events.\n *\n * @param channel - The channel on which to listen\n * @param callback - The callback to execute when an event is received on the specified channel\n * @param listenerName - The name of the listener; defaults to 'noname'\n * @returns A function which can be called to cancel the listener.\n *\n */\n HubClass.prototype.listen = function (channel, callback, listenerName) {\n var _this = this;\n if (listenerName === void 0) { listenerName = 'noname'; }\n var cb;\n // Check for legacy onHubCapsule callback for backwards compatability\n if (isLegacyCallback(callback)) {\n logger.warn(\"WARNING onHubCapsule is Deprecated. Please pass in a callback.\");\n cb = callback.onHubCapsule.bind(callback);\n }\n else if (typeof callback !== 'function') {\n throw new Error('No callback supplied to Hub');\n }\n else {\n cb = callback;\n }\n if (channel instanceof RegExp) {\n this.patterns.push({\n pattern: channel,\n callback: cb,\n });\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n holder = [];\n this.listeners[channel] = holder;\n }\n holder.push({\n name: listenerName,\n callback: cb,\n });\n }\n return function () {\n _this._remove(channel, cb);\n };\n };\n HubClass.prototype._toListeners = function (capsule) {\n var channel = capsule.channel, payload = capsule.payload;\n var holder = this.listeners[channel];\n if (holder) {\n holder.forEach(function (listener) {\n logger.debug(\"Dispatching to \".concat(channel, \" with \"), payload);\n try {\n listener.callback(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n });\n }\n if (this.patterns.length > 0) {\n if (!payload.message) {\n logger.warn(\"Cannot perform pattern matching without a message key\");\n return;\n }\n var payloadStr_1 = payload.message;\n this.patterns.forEach(function (pattern) {\n var match = payloadStr_1.match(pattern.pattern);\n if (match) {\n var _a = __read(match), groups = _a.slice(1);\n var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups });\n try {\n pattern.callback(dispatchingCapsule);\n }\n catch (e) {\n logger.error(e);\n }\n }\n });\n }\n };\n return HubClass;\n}());\nexport { HubClass };\n/*We export a __default__ instance of HubClass to use it as a\npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\nexport var Hub = new HubClass('__default__');\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar MIME_MAP = [\n { type: 'text/plain', ext: 'txt' },\n { type: 'text/html', ext: 'html' },\n { type: 'text/javascript', ext: 'js' },\n { type: 'text/css', ext: 'css' },\n { type: 'text/csv', ext: 'csv' },\n { type: 'text/yaml', ext: 'yml' },\n { type: 'text/yaml', ext: 'yaml' },\n { type: 'text/calendar', ext: 'ics' },\n { type: 'text/calendar', ext: 'ical' },\n { type: 'image/apng', ext: 'apng' },\n { type: 'image/bmp', ext: 'bmp' },\n { type: 'image/gif', ext: 'gif' },\n { type: 'image/x-icon', ext: 'ico' },\n { type: 'image/x-icon', ext: 'cur' },\n { type: 'image/jpeg', ext: 'jpg' },\n { type: 'image/jpeg', ext: 'jpeg' },\n { type: 'image/jpeg', ext: 'jfif' },\n { type: 'image/jpeg', ext: 'pjp' },\n { type: 'image/jpeg', ext: 'pjpeg' },\n { type: 'image/png', ext: 'png' },\n { type: 'image/svg+xml', ext: 'svg' },\n { type: 'image/tiff', ext: 'tif' },\n { type: 'image/tiff', ext: 'tiff' },\n { type: 'image/webp', ext: 'webp' },\n { type: 'application/json', ext: 'json' },\n { type: 'application/xml', ext: 'xml' },\n { type: 'application/x-sh', ext: 'sh' },\n { type: 'application/zip', ext: 'zip' },\n { type: 'application/x-rar-compressed', ext: 'rar' },\n { type: 'application/x-tar', ext: 'tar' },\n { type: 'application/x-bzip', ext: 'bz' },\n { type: 'application/x-bzip2', ext: 'bz2' },\n { type: 'application/pdf', ext: 'pdf' },\n { type: 'application/java-archive', ext: 'jar' },\n { type: 'application/msword', ext: 'doc' },\n { type: 'application/vnd.ms-excel', ext: 'xls' },\n { type: 'application/vnd.ms-excel', ext: 'xlsx' },\n { type: 'message/rfc822', ext: 'eml' },\n];\nexport var isEmpty = function (obj) {\n if (obj === void 0) { obj = {}; }\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function (list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\n var dirX = dir && dir === 'desc' ? -1 : 1;\n list.sort(function (a, b) {\n var a_val = a[field];\n var b_val = b[field];\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n if (a_val < b_val) {\n return -1 * dirX;\n }\n if (a_val > b_val) {\n return 1 * dirX;\n }\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function (obj, less) {\n var ret = Object.assign({}, obj);\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n }\n else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n return ret;\n};\nexport var filenameToContentType = function (filename, defVal) {\n if (defVal === void 0) { defVal = 'application/octet-stream'; }\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function (contentType) {\n var type = contentType.toLowerCase();\n if (type.startsWith('text/')) {\n return true;\n }\n return ('application/json' === type ||\n 'application/xml' === type ||\n 'application/sh' === type);\n};\nexport var generateRandomString = function () {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport var makeQuerablePromise = function (promise) {\n if (promise.isResolved)\n return promise;\n var isPending = true;\n var isRejected = false;\n var isFullfilled = false;\n var result = promise.then(function (data) {\n isFullfilled = true;\n isPending = false;\n return data;\n }, function (e) {\n isRejected = true;\n isPending = false;\n throw e;\n });\n result.isFullfilled = function () { return isFullfilled; };\n result.isPending = function () { return isPending; };\n result.isRejected = function () { return isRejected; };\n return result;\n};\nexport var isWebWorker = function () {\n if (typeof self === 'undefined') {\n return false;\n }\n var selfContext = self;\n return (typeof selfContext.WorkerGlobalScope !== 'undefined' &&\n self instanceof selfContext.WorkerGlobalScope);\n};\nexport var browserOrNode = function () {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n return {\n isBrowser: isBrowser,\n isNode: isNode,\n };\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key)\n ? key\n : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key)\n ? key\n : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport var isStrictObject = function (obj) {\n return (obj instanceof Object &&\n !(obj instanceof Array) &&\n !(obj instanceof Function) &&\n !(obj instanceof Number) &&\n !(obj instanceof String) &&\n !(obj instanceof Boolean));\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nexport var ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\".concat(type, \"] \").concat(this._ts(), \" \").concat(this.name);\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = \"\".concat(prefix, \" - \").concat(msg[0]);\n log(message);\n }\n else if (msg.length === 1) {\n message = \"\".concat(prefix, \" \").concat(msg[0]);\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = \"\".concat(prefix, \" - \").concat(msg[0], \" \").concat(obj);\n log(\"\".concat(prefix, \" - \").concat(msg[0]), obj);\n }\n else {\n message = \"\".concat(prefix, \" \").concat(msg);\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.INFO], __read(msg), false));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.INFO], __read(msg), false));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.WARN], __read(msg), false));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.ERROR], __read(msg), false));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.DEBUG], __read(msg), false));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.VERBOSE], __read(msg), false));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var globalExists = function () {\n return typeof global !== 'undefined';\n};\nexport var globalThisExists = function () {\n return typeof globalThis !== 'undefined';\n};\nexport var windowExists = function () {\n return typeof window !== 'undefined';\n};\nexport var documentExists = function () {\n return typeof document !== 'undefined';\n};\nexport var processExists = function () {\n return typeof process !== 'undefined';\n};\nexport var keyPrefixMatch = function (object, prefix) {\n return !!Object.keys(object).find(function (key) { return key.startsWith(prefix); });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from '../types';\nimport { reactWebDetect, reactSSRDetect } from './React';\nimport { vueWebDetect, vueSSRDetect } from './Vue';\nimport { svelteWebDetect, svelteSSRDetect } from './Svelte';\nimport { nextWebDetect, nextSSRDetect } from './Next';\nimport { nuxtWebDetect, nuxtSSRDetect } from './Nuxt';\nimport { angularWebDetect, angularSSRDetect } from './Angular';\nimport { reactNativeDetect } from './ReactNative';\nimport { expoDetect } from './Expo';\nimport { webDetect } from './Web';\n// These are in the order of detection where when both are detectable, the early Framework will be reported\nvar detectionMap = [\n // First, detect mobile\n { platform: Framework.Expo, detectionMethod: expoDetect },\n { platform: Framework.ReactNative, detectionMethod: reactNativeDetect },\n // Next, detect web frameworks\n { platform: Framework.NextJs, detectionMethod: nextWebDetect },\n { platform: Framework.Nuxt, detectionMethod: nuxtWebDetect },\n { platform: Framework.Angular, detectionMethod: angularWebDetect },\n { platform: Framework.React, detectionMethod: reactWebDetect },\n { platform: Framework.VueJs, detectionMethod: vueWebDetect },\n { platform: Framework.Svelte, detectionMethod: svelteWebDetect },\n { platform: Framework.WebUnknown, detectionMethod: webDetect },\n // Last, detect ssr frameworks\n { platform: Framework.NextJsSSR, detectionMethod: nextSSRDetect },\n { platform: Framework.NuxtSSR, detectionMethod: nuxtSSRDetect },\n { platform: Framework.ReactSSR, detectionMethod: reactSSRDetect },\n { platform: Framework.VueJsSSR, detectionMethod: vueSSRDetect },\n { platform: Framework.AngularSSR, detectionMethod: angularSSRDetect },\n { platform: Framework.SvelteSSR, detectionMethod: svelteSSRDetect },\n];\nexport function detect() {\n var _a;\n return (((_a = detectionMap.find(function (detectionEntry) { return detectionEntry.detectionMethod(); })) === null || _a === void 0 ? void 0 : _a.platform) || Framework.ServerSideUnknown);\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from './types';\nimport { detect } from './detection';\n// We want to cache detection since the framework won't change\nvar frameworkCache;\nexport var frameworkChangeObservers = [];\n// Setup the detection reset tracking / timeout delays\nvar resetTriggered = false;\nvar SSR_RESET_TIMEOUT = 10; // ms\nvar WEB_RESET_TIMEOUT = 10; // ms\nvar PRIME_FRAMEWORK_DELAY = 1000; // ms\nexport var detectFramework = function () {\n if (!frameworkCache) {\n frameworkCache = detect();\n if (resetTriggered) {\n // The final run of detectFramework:\n // Starting from this point, the `frameworkCache` becomes \"final\".\n // So we don't need to notify the observers again so the observer\n // can be removed after the final notice.\n while (frameworkChangeObservers.length) {\n frameworkChangeObservers.pop()();\n }\n }\n else {\n // The first run of detectFramework:\n // Every time we update the cache, call each observer function\n frameworkChangeObservers.forEach(function (fcn) { return fcn(); });\n }\n // Retry once for either Unknown type after a delay (explained below)\n resetTimeout(Framework.ServerSideUnknown, SSR_RESET_TIMEOUT);\n resetTimeout(Framework.WebUnknown, WEB_RESET_TIMEOUT);\n }\n return frameworkCache;\n};\n/**\n * @internal Setup observer callback that will be called everytime the framework changes\n */\nexport var observeFrameworkChanges = function (fcn) {\n // When the `frameworkCache` won't be updated again, we ignore all incoming\n // observers.\n if (resetTriggered) {\n return;\n }\n frameworkChangeObservers.push(fcn);\n};\nexport function clearCache() {\n frameworkCache = undefined;\n}\n// For a framework type and a delay amount, setup the event to re-detect\n// During the runtime boot, it is possible that framework detection will\n// be triggered before the framework has made modifications to the\n// global/window/etc needed for detection. When no framework is detected\n// we will reset and try again to ensure we don't use a cached\n// non-framework detection result for all requests.\nfunction resetTimeout(framework, delay) {\n if (frameworkCache === framework && !resetTriggered) {\n setTimeout(function () {\n clearCache();\n resetTriggered = true;\n setTimeout(detectFramework, PRIME_FRAMEWORK_DELAY);\n }, delay);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists } from './helpers';\n// Tested with expo 48 / react-native 0.71.3\nexport function expoDetect() {\n // @ts-ignore\n return globalExists() && typeof global['expo'] !== 'undefined';\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Tested with react-native 0.17.7\nexport function reactNativeDetect() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.product !== 'undefined' &&\n navigator.product === 'ReactNative');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, keyPrefixMatch, windowExists } from './helpers';\n// Tested with next 13.4 / react 18.2\nexport function nextWebDetect() {\n // @ts-ignore\n return windowExists() && window['next'] && typeof window['next'] === 'object';\n}\nexport function nextSSRDetect() {\n return (globalExists() &&\n (keyPrefixMatch(global, '__next') || keyPrefixMatch(global, '__NEXT')));\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, windowExists } from './helpers';\n// Tested with nuxt 2.15 / vue 2.7\nexport function nuxtWebDetect() {\n return (windowExists() &&\n // @ts-ignore\n (window['__NUXT__'] !== undefined || window['$nuxt'] !== undefined));\n}\nexport function nuxtSSRDetect() {\n // @ts-ignore\n return globalExists() && typeof global['__NUXT_PATHS__'] !== 'undefined';\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { documentExists, processExists, windowExists } from './helpers';\n// Tested with @angular/core 16.0.0\nexport function angularWebDetect() {\n var angularVersionSetInDocument = Boolean(documentExists() && document.querySelector('[ng-version]'));\n var angularContentSetInWindow = Boolean(\n // @ts-ignore\n windowExists() && typeof window['ng'] !== 'undefined');\n return angularVersionSetInDocument || angularContentSetInWindow;\n}\nexport function angularSSRDetect() {\n var _a;\n return ((processExists() &&\n typeof process.env === 'object' &&\n ((_a = process.env['npm_lifecycle_script']) === null || _a === void 0 ? void 0 : _a.startsWith('ng '))) ||\n false);\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { documentExists, processExists } from './helpers';\n// Tested with react 18.2 - built using Vite\nexport function reactWebDetect() {\n var elementKeyPrefixedWithReact = function (key) {\n return key.startsWith('_react') || key.startsWith('__react');\n };\n var elementIsReactEnabled = function (element) {\n return Object.keys(element).find(elementKeyPrefixedWithReact);\n };\n var allElementsWithId = function () { return Array.from(document.querySelectorAll('[id]')); };\n return documentExists() && allElementsWithId().some(elementIsReactEnabled);\n}\nexport function reactSSRDetect() {\n return (processExists() &&\n typeof process.env !== 'undefined' &&\n !!Object.keys(process.env).find(function (key) { return key.includes('react'); }));\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, keyPrefixMatch, windowExists } from './helpers';\n// Tested with vue 3.3.2\nexport function vueWebDetect() {\n return windowExists() && keyPrefixMatch(window, '__VUE');\n}\nexport function vueSSRDetect() {\n return globalExists() && keyPrefixMatch(global, '__VUE');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { keyPrefixMatch, processExists, windowExists } from './helpers';\n// Tested with svelte 3.59\nexport function svelteWebDetect() {\n return windowExists() && keyPrefixMatch(window, '__SVELTE');\n}\nexport function svelteSSRDetect() {\n return (processExists() &&\n typeof process.env !== 'undefined' &&\n !!Object.keys(process.env).find(function (key) { return key.includes('svelte'); }));\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { windowExists } from './helpers';\nexport function webDetect() {\n return windowExists();\n}\n","// generated by genversion\nexport var version = '5.3.11';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { Framework } from './types';\nimport { version } from './version';\nimport { detectFramework, observeFrameworkChanges } from './detectFramework';\nvar BASE_USER_AGENT = \"aws-amplify\";\nvar PlatformBuilder = /** @class */ (function () {\n function PlatformBuilder() {\n this.userAgent = \"\".concat(BASE_USER_AGENT, \"/\").concat(version);\n }\n Object.defineProperty(PlatformBuilder.prototype, \"framework\", {\n get: function () {\n return detectFramework();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PlatformBuilder.prototype, \"isReactNative\", {\n get: function () {\n return (this.framework === Framework.ReactNative ||\n this.framework === Framework.Expo);\n },\n enumerable: false,\n configurable: true\n });\n PlatformBuilder.prototype.observeFrameworkChanges = function (fcn) {\n observeFrameworkChanges(fcn);\n };\n return PlatformBuilder;\n}());\nexport var Platform = new PlatformBuilder();\nexport var getAmplifyUserAgentObject = function (_a) {\n var _b = _a === void 0 ? {} : _a, category = _b.category, action = _b.action, framework = _b.framework;\n var userAgent = [[BASE_USER_AGENT, version]];\n if (category) {\n userAgent.push([category, action]);\n }\n userAgent.push(['framework', detectFramework()]);\n return userAgent;\n};\nexport var getAmplifyUserAgent = function (customUserAgentDetails) {\n var userAgent = getAmplifyUserAgentObject(customUserAgentDetails);\n var userAgentString = userAgent\n .map(function (_a) {\n var _b = __read(_a, 2), agentKey = _b[0], agentValue = _b[1];\n return \"\".concat(agentKey, \"/\").concat(agentValue);\n })\n .join(' ');\n return userAgentString;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var Framework;\n(function (Framework) {\n // < 100 - Web frameworks\n Framework[\"WebUnknown\"] = \"0\";\n Framework[\"React\"] = \"1\";\n Framework[\"NextJs\"] = \"2\";\n Framework[\"Angular\"] = \"3\";\n Framework[\"VueJs\"] = \"4\";\n Framework[\"Nuxt\"] = \"5\";\n Framework[\"Svelte\"] = \"6\";\n // 100s - Server side frameworks\n Framework[\"ServerSideUnknown\"] = \"100\";\n Framework[\"ReactSSR\"] = \"101\";\n Framework[\"NextJsSSR\"] = \"102\";\n Framework[\"AngularSSR\"] = \"103\";\n Framework[\"VueJsSSR\"] = \"104\";\n Framework[\"NuxtSSR\"] = \"105\";\n Framework[\"SvelteSSR\"] = \"106\";\n // 200s - Mobile framework\n Framework[\"ReactNative\"] = \"201\";\n Framework[\"Expo\"] = \"202\";\n})(Framework || (Framework = {}));\nexport var Category;\n(function (Category) {\n Category[\"API\"] = \"api\";\n Category[\"Auth\"] = \"auth\";\n Category[\"Analytics\"] = \"analytics\";\n Category[\"DataStore\"] = \"datastore\";\n Category[\"Geo\"] = \"geo\";\n Category[\"InAppMessaging\"] = \"inappmessaging\";\n Category[\"Interactions\"] = \"interactions\";\n Category[\"Predictions\"] = \"predictions\";\n Category[\"PubSub\"] = \"pubsub\";\n Category[\"PushNotification\"] = \"pushnotification\";\n Category[\"Storage\"] = \"storage\";\n})(Category || (Category = {}));\nexport var AnalyticsAction;\n(function (AnalyticsAction) {\n AnalyticsAction[\"Record\"] = \"1\";\n AnalyticsAction[\"UpdateEndpoint\"] = \"2\";\n})(AnalyticsAction || (AnalyticsAction = {}));\nexport var ApiAction;\n(function (ApiAction) {\n ApiAction[\"GraphQl\"] = \"1\";\n ApiAction[\"Get\"] = \"2\";\n ApiAction[\"Post\"] = \"3\";\n ApiAction[\"Put\"] = \"4\";\n ApiAction[\"Patch\"] = \"5\";\n ApiAction[\"Del\"] = \"6\";\n ApiAction[\"Head\"] = \"7\";\n})(ApiAction || (ApiAction = {}));\nexport var AuthAction;\n(function (AuthAction) {\n // SignUp = '1',\n // ConfirmSignUp = '2',\n // ResendSignUp = '3',\n // SignIn = '4',\n // GetMFAOptions = '5',\n // GetPreferredMFA = '6',\n // SetPreferredMFA = '7',\n // DisableSMS = '8',\n // EnableSMS = '9',\n // SetupTOTP = '10',\n // VerifyTotpToken = '11',\n // ConfirmSignIn = '12',\n // CompleteNewPassword = '13',\n // SendCustomChallengeAnswer = '14',\n // DeleteUserAttributes = '15',\n // DeleteUser = '16',\n // UpdateUserAttributes = '17',\n // UserAttributes = '18',\n // CurrentUserPoolUser = '19',\n // CurrentAuthenticatedUser = '20',\n // CurrentSession = '21',\n // VerifyUserAttribute = '22',\n // VerifyUserAttributeSubmit = '23',\n // VerifyCurrentUserAttribute = '24',\n // VerifyCurrentUserAttributeSubmit = '25',\n // SignOut = '26',\n // ChangePassword = '27',\n // ForgotPassword = '28',\n // ForgotPasswordSubmit = '29',\n AuthAction[\"FederatedSignIn\"] = \"30\";\n // CurrentUserInfo = '31',\n // RememberDevice = '32',\n // ForgetDevice = '33',\n // FetchDevices = '34',\n})(AuthAction || (AuthAction = {}));\nexport var DataStoreAction;\n(function (DataStoreAction) {\n DataStoreAction[\"Subscribe\"] = \"1\";\n DataStoreAction[\"GraphQl\"] = \"2\";\n})(DataStoreAction || (DataStoreAction = {}));\nexport var GeoAction;\n(function (GeoAction) {\n GeoAction[\"None\"] = \"0\";\n})(GeoAction || (GeoAction = {}));\nexport var InAppMessagingAction;\n(function (InAppMessagingAction) {\n InAppMessagingAction[\"None\"] = \"0\";\n})(InAppMessagingAction || (InAppMessagingAction = {}));\nexport var InteractionsAction;\n(function (InteractionsAction) {\n InteractionsAction[\"None\"] = \"0\";\n})(InteractionsAction || (InteractionsAction = {}));\nexport var PredictionsAction;\n(function (PredictionsAction) {\n PredictionsAction[\"Convert\"] = \"1\";\n PredictionsAction[\"Identify\"] = \"2\";\n PredictionsAction[\"Interpret\"] = \"3\";\n})(PredictionsAction || (PredictionsAction = {}));\nexport var PubSubAction;\n(function (PubSubAction) {\n PubSubAction[\"Subscribe\"] = \"1\";\n})(PubSubAction || (PubSubAction = {}));\nexport var PushNotificationAction;\n(function (PushNotificationAction) {\n PushNotificationAction[\"None\"] = \"0\";\n})(PushNotificationAction || (PushNotificationAction = {}));\nexport var StorageAction;\n(function (StorageAction) {\n StorageAction[\"Put\"] = \"1\";\n StorageAction[\"Get\"] = \"2\";\n StorageAction[\"List\"] = \"3\";\n StorageAction[\"Copy\"] = \"4\";\n StorageAction[\"Remove\"] = \"5\";\n StorageAction[\"GetProperties\"] = \"6\";\n})(StorageAction || (StorageAction = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar dataMemory = {};\n/** @class */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function (key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n };\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n MemoryStorage.getItem = function (key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key)\n ? dataMemory[key]\n : undefined;\n };\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n MemoryStorage.removeItem = function (key) {\n return delete dataMemory[key];\n };\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n MemoryStorage.clear = function () {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\nvar StorageHelper = /** @class */ (function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.amplify.test-ls', 1);\n this.storageWindow.removeItem('aws.amplify.test-ls');\n }\n catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n StorageHelper.prototype.getStorage = function () {\n return this.storageWindow;\n };\n return StorageHelper;\n}());\nexport { StorageHelper };\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\nvar ONE_YEAR_IN_MS = 365 * 24 * 60 * 60 * 1000;\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(context) {\n if (context === void 0) { context = {}; }\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req\n ? new Cookies(decodeURIComponent(context.req.headers.cookie))\n : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function () {\n return Object.entries(this.store).length;\n },\n enumerable: false,\n configurable: true\n });\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n Array.from(new Array(this.length))\n .map(function (_, i) { return _this.key(i); })\n .forEach(function (key) { return _this.removeItem(key); });\n };\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key)\n ? this.store[key]\n : null;\n };\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/',\n });\n };\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value);\n // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n var tokenType = key.split('.').pop();\n var sessionTokenTypes = [\n 'LastAuthUser',\n 'accessToken',\n // refreshToken originates on the client, but SSR pages won't fail when this expires\n // Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n 'refreshToken',\n // Required for CognitoUserSession\n 'idToken',\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // 'userData',\n // Ignoring clockDrift on the server for now, but needs testing\n // 'clockDrift',\n ];\n if (sessionTokenTypes.includes(tokenType !== null && tokenType !== void 0 ? tokenType : '')) {\n this.setUniversalItem(key, value, {\n expires: new Date(Date.now() + ONE_YEAR_IN_MS),\n });\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value, options) {\n if (options === void 0) { options = {}; }\n this.cookies.set(key, value, __assign(__assign({}, options), { path: '/', \n // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n sameSite: true, \n // Allow unsecure requests to http://localhost:3000/ when in development.\n secure: isBrowser && window.location.hostname === 'localhost' ? false : true }));\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexport { NonRetryableError };\nexport var isNonRetryableError = function (obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function retry(functionToRetry, args, delayFn, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var attempt, terminated, timeout, wakeUp, lastError, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempt = 0;\n terminated = false;\n wakeUp = function () { };\n onTerminate &&\n onTerminate.then(function () {\n // signal not to try anymore.\n terminated = true;\n // stop sleeping if we're sleeping.\n clearTimeout(timeout);\n wakeUp();\n });\n _loop_1 = function () {\n var _b, _c, err_1, retryIn_1;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n attempt++;\n logger.debug(\"\".concat(functionToRetry.name, \" attempt #\").concat(attempt, \" with this vars: \").concat(JSON.stringify(args)));\n _d.label = 1;\n case 1:\n _d.trys.push([1, 3, , 7]);\n _b = {};\n _c = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spreadArray([], __read(args), false))];\n case 2: return [2 /*return*/, (_b.value = _c.apply(void 0, [_d.sent()]), _b)];\n case 3:\n err_1 = _d.sent();\n lastError = err_1;\n logger.debug(\"error on \".concat(functionToRetry.name), err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(\"\".concat(functionToRetry.name, \" non retryable error\"), err_1);\n return [2 /*return*/, { value: reject(err_1) }];\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(\"\".concat(functionToRetry.name, \" retrying in \").concat(retryIn_1, \" ms\"));\n if (!(retryIn_1 === false || terminated)) return [3 /*break*/, 4];\n return [2 /*return*/, { value: reject(err_1) }];\n case 4: return [4 /*yield*/, new Promise(function (r) {\n wakeUp = r; // export wakeUp for onTerminate handling\n timeout = setTimeout(wakeUp, retryIn_1);\n })];\n case 5:\n _d.sent();\n _d.label = 6;\n case 6: return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1:\n if (!!terminated) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 1];\n case 3:\n // reached if terminated while waiting for a timer.\n reject(lastError);\n return [2 /*return*/];\n }\n });\n }); })];\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Amplify only\n */\nexport var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs, onTerminate) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Default partition for AWS services. This is used when the region is not provided or the region is not recognized.\n *\n * @internal\n */\nexport var defaultPartition = {\n id: 'aws',\n outputs: {\n dnsSuffix: 'amazonaws.com',\n },\n regionRegex: '^(us|eu|ap|sa|ca|me|af)\\\\-\\\\w+\\\\-\\\\d+$',\n regions: ['aws-global'],\n};\n/**\n * This data is adapted from the partition file from AWS SDK shared utilities but remove some contents for bundle size\n * concern. Information removed are `dualStackDnsSuffix`, `supportDualStack`, `supportFIPS`, restricted partitions, and\n * list of regions for each partition other than global regions.\n *\n * * Ref: https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints\n * * Ref: https://github.com/aws/aws-sdk-js-v3/blob/0201baef03c2379f1f6f7150b9d401d4b230d488/packages/util-endpoints/src/lib/aws/partitions.json#L1\n *\n * @internal\n */\nexport var partitionsInfo = {\n partitions: [\n defaultPartition,\n {\n id: 'aws-cn',\n outputs: {\n dnsSuffix: 'amazonaws.com.cn',\n },\n regionRegex: '^cn\\\\-\\\\w+\\\\-\\\\d+$',\n regions: ['aws-cn-global'],\n },\n ],\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { defaultPartition, partitionsInfo } from './partitions';\n/**\n * Get the AWS Services endpoint URL's DNS suffix for a given region. A typical AWS regional service endpoint URL will\n * follow this pattern: {endpointPrefix}.{region}.{dnsSuffix}. For example, the endpoint URL for Cognito Identity in\n * us-east-1 will be cognito-identity.us-east-1.amazonaws.com. Here the DnsSuffix is `amazonaws.com`.\n *\n * @param region\n * @returns The DNS suffix\n *\n * @internal\n */\nexport var getDnsSuffix = function (region) {\n var e_1, _a;\n var partitions = partitionsInfo.partitions;\n try {\n for (var partitions_1 = __values(partitions), partitions_1_1 = partitions_1.next(); !partitions_1_1.done; partitions_1_1 = partitions_1.next()) {\n var _b = partitions_1_1.value, regions = _b.regions, outputs = _b.outputs, regionRegex = _b.regionRegex;\n var regex = new RegExp(regionRegex);\n if (regions.includes(region) || regex.test(region)) {\n return outputs.dnsSuffix;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (partitions_1_1 && !partitions_1_1.done && (_a = partitions_1.return)) _a.call(partitions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return defaultPartition.outputs.dnsSuffix;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport 'isomorphic-unfetch'; // TODO: remove this dependency in v6\nimport { withMemoization } from '../utils/memoization';\nvar shouldSendBody = function (method) {\n return !['HEAD', 'GET', 'DELETE'].includes(method.toUpperCase());\n};\nexport var fetchTransferHandler = function (_a, _b) {\n var url = _a.url, method = _a.method, headers = _a.headers, body = _a.body;\n var abortSignal = _b.abortSignal;\n return __awaiter(void 0, void 0, void 0, function () {\n var resp, e_1, responseHeaders, httpResponse, bodyWithMixin;\n var _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fetch(url, {\n method: method,\n headers: headers,\n body: shouldSendBody(method) ? body : undefined,\n signal: abortSignal,\n })];\n case 1:\n resp = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n e_1 = _e.sent();\n // TODO: needs to revise error handling in v6\n // For now this is a thin wrapper over original fetch error similar to cognito-identity-js package.\n // Ref: https://github.com/aws-amplify/amplify-js/blob/4fbc8c0a2be7526aab723579b4c95b552195a80b/packages/amazon-cognito-identity-js/src/Client.js#L103-L108\n if (e_1 instanceof TypeError) {\n throw new Error('Network error');\n }\n throw e_1;\n case 3:\n responseHeaders = {};\n (_c = resp.headers) === null || _c === void 0 ? void 0 : _c.forEach(function (value, key) {\n responseHeaders[key.toLowerCase()] = value;\n });\n httpResponse = {\n statusCode: resp.status,\n headers: responseHeaders,\n body: null,\n };\n bodyWithMixin = Object.assign((_d = resp.body) !== null && _d !== void 0 ? _d : {}, {\n text: withMemoization(function () { return resp.text(); }),\n blob: withMemoization(function () { return resp.blob(); }),\n json: withMemoization(function () { return resp.json(); }),\n });\n return [2 /*return*/, __assign(__assign({}, httpResponse), { body: bodyWithMixin })];\n }\n });\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nexport var composeServiceApi = function (transferHandler, serializer, deserializer, defaultConfig) {\n return function (config, input) { return __awaiter(void 0, void 0, void 0, function () {\n var resolvedConfig, endpoint, request, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resolvedConfig = __assign(__assign({}, defaultConfig), config);\n return [4 /*yield*/, resolvedConfig.endpointResolver(resolvedConfig, input)];\n case 1:\n endpoint = _a.sent();\n return [4 /*yield*/, serializer(input, endpoint)];\n case 2:\n request = _a.sent();\n return [4 /*yield*/, transferHandler(request, __assign({}, resolvedConfig))];\n case 3:\n response = _a.sent();\n return [4 /*yield*/, deserializer(response)];\n case 4: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Compose a transfer handler with a core transfer handler and a list of middleware.\n * @param coreHandler Core transfer handler\n * @param middleware\tList of middleware\n * @returns A transfer handler whose option type is the union of the core\n * \ttransfer handler's option type and the middleware's option type.\n * @internal\n */\nexport var composeTransferHandler = function (coreHandler, middleware) {\n return function (request, options) {\n var context = {};\n var composedHandler = function (request) { return coreHandler(request, options); };\n for (var i = middleware.length - 1; i >= 0; i--) {\n var m = middleware[i];\n var resolvedMiddleware = m(options);\n composedHandler = resolvedMiddleware(composedHandler, context);\n }\n return composedHandler(request);\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// via https://github.com/aws/aws-sdk-js-v3/blob/ab0e7be36e7e7f8a0c04834357aaad643c7912c3/packages/service-error-classification/src/constants.ts#L8\nvar CLOCK_SKEW_ERROR_CODES = [\n 'AuthFailure',\n 'InvalidSignatureException',\n 'RequestExpired',\n 'RequestInTheFuture',\n 'RequestTimeTooSkewed',\n 'SignatureDoesNotMatch',\n 'BadRequestException', // API Gateway\n];\n/**\n * Given an error code, returns true if it is related to a clock skew error.\n *\n * @param errorCode String representation of some error.\n * @returns True if given error is present in `CLOCK_SKEW_ERROR_CODES`, false otherwise.\n *\n * @internal\n */\nexport var isClockSkewError = function (errorCode) {\n return CLOCK_SKEW_ERROR_CODES.includes(errorCode);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { isClockSkewError } from './isClockSkewError';\n/**\n * Get retry decider function\n * @param errorParser Function to load JavaScript error from HTTP response\n */\nexport var getRetryDecider = function (errorParser) {\n return function (response, error) { return __awaiter(void 0, void 0, void 0, function () {\n var errorCode, _a, statusCode;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(error !== null && error !== void 0)) return [3 /*break*/, 1];\n _a = error;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, errorParser(response)];\n case 2:\n _a = (_c.sent());\n _c.label = 3;\n case 3:\n errorCode = ((_b = _a) !== null && _b !== void 0 ? _b : {}).name;\n statusCode = response === null || response === void 0 ? void 0 : response.statusCode;\n return [2 /*return*/, (isConnectionError(error) ||\n isThrottlingError(statusCode, errorCode) ||\n isClockSkewError(errorCode) ||\n isServerSideError(statusCode, errorCode))];\n }\n });\n }); };\n};\n// reference: https://github.com/aws/aws-sdk-js-v3/blob/ab0e7be36e7e7f8a0c04834357aaad643c7912c3/packages/service-error-classification/src/constants.ts#L22-L37\nvar THROTTLING_ERROR_CODES = [\n 'BandwidthLimitExceeded',\n 'EC2ThrottledException',\n 'LimitExceededException',\n 'PriorRequestNotComplete',\n 'ProvisionedThroughputExceededException',\n 'RequestLimitExceeded',\n 'RequestThrottled',\n 'RequestThrottledException',\n 'SlowDown',\n 'ThrottledException',\n 'Throttling',\n 'ThrottlingException',\n 'TooManyRequestsException',\n];\nvar TIMEOUT_ERROR_CODES = [\n 'TimeoutError',\n 'RequestTimeout',\n 'RequestTimeoutException',\n];\nvar isThrottlingError = function (statusCode, errorCode) {\n return statusCode === 429 || THROTTLING_ERROR_CODES.includes(errorCode);\n};\nvar isConnectionError = function (error) { return (error === null || error === void 0 ? void 0 : error.name) === 'Network error'; };\nvar isServerSideError = function (statusCode, errorCode) {\n return [500, 502, 503, 504].includes(statusCode) ||\n TIMEOUT_ERROR_CODES.includes(errorCode);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// TODO: [v6] The separate retry utility is used by Data packages now and will replaced by retry middleware.\nimport { jitteredBackoff as jitteredBackoffUtil } from '../../../Util/Retry';\nvar DEFAULT_MAX_DELAY_MS = 5 * 60 * 1000;\nexport var jitteredBackoff = function (attempt) {\n var delayFunction = jitteredBackoffUtil(DEFAULT_MAX_DELAY_MS);\n var delay = delayFunction(attempt);\n // The delayFunction returns false when the delay is greater than the max delay(5 mins).\n // In this case, the retry middleware will delay 5 mins instead, as a ceiling of the delay.\n return delay === false ? DEFAULT_MAX_DELAY_MS : delay;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar DEFAULT_RETRY_ATTEMPTS = 3;\n/**\n * Retry middleware\n */\nexport var retryMiddleware = function (_a) {\n var _b = _a.maxAttempts, maxAttempts = _b === void 0 ? DEFAULT_RETRY_ATTEMPTS : _b, retryDecider = _a.retryDecider, computeDelay = _a.computeDelay, abortSignal = _a.abortSignal;\n if (maxAttempts < 1) {\n throw new Error('maxAttempts must be greater than 0');\n }\n return function (next, context) {\n return function retryMiddleware(request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var error, attemptsCount, response, handleTerminalErrorOrResponse, e_1, delay;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n attemptsCount = (_a = context.attemptsCount) !== null && _a !== void 0 ? _a : 0;\n handleTerminalErrorOrResponse = function () {\n if (response) {\n addOrIncrementMetadataAttempts(response, attemptsCount);\n return response;\n }\n else {\n addOrIncrementMetadataAttempts(error, attemptsCount);\n throw error;\n }\n };\n _b.label = 1;\n case 1:\n if (!(!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && attemptsCount < maxAttempts)) return [3 /*break*/, 11];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, next(request)];\n case 3:\n response = _b.sent();\n error = undefined;\n return [3 /*break*/, 5];\n case 4:\n e_1 = _b.sent();\n error = e_1;\n response = undefined;\n return [3 /*break*/, 5];\n case 5:\n // context.attemptsCount may be updated after calling next handler which may retry the request by itself.\n attemptsCount =\n context.attemptsCount > attemptsCount\n ? context.attemptsCount\n : attemptsCount + 1;\n context.attemptsCount = attemptsCount;\n return [4 /*yield*/, retryDecider(response, error)];\n case 6:\n if (!_b.sent()) return [3 /*break*/, 9];\n if (!(!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && attemptsCount < maxAttempts)) return [3 /*break*/, 8];\n delay = computeDelay(attemptsCount);\n return [4 /*yield*/, cancellableSleep(delay, abortSignal)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3 /*break*/, 1];\n case 9: return [2 /*return*/, handleTerminalErrorOrResponse()];\n case 10: return [3 /*break*/, 1];\n case 11:\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n throw new Error('Request aborted.');\n }\n else {\n return [2 /*return*/, handleTerminalErrorOrResponse()];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n };\n};\nvar cancellableSleep = function (timeoutMs, abortSignal) {\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n return Promise.resolve();\n }\n var timeoutId;\n var sleepPromiseResolveFn;\n var sleepPromise = new Promise(function (resolve) {\n sleepPromiseResolveFn = resolve;\n timeoutId = setTimeout(resolve, timeoutMs);\n });\n abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.addEventListener('abort', function cancelSleep(event) {\n clearTimeout(timeoutId);\n abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener('abort', cancelSleep);\n sleepPromiseResolveFn();\n });\n return sleepPromise;\n};\nvar addOrIncrementMetadataAttempts = function (nextHandlerOutput, attempts) {\n var _a;\n if (Object.prototype.toString.call(nextHandlerOutput) !== '[object Object]') {\n return;\n }\n nextHandlerOutput['$metadata'] = __assign(__assign({}, ((_a = nextHandlerOutput['$metadata']) !== null && _a !== void 0 ? _a : {})), { attempts: attempts });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns a `Date` that is corrected for clock skew.\n *\n * @param systemClockOffset The offset of the system clock in milliseconds.\n *\n * @returns `Date` representing the current time adjusted by the system clock offset.\n *\n * @internal\n */\nexport var getSkewCorrectedDate = function (systemClockOffset) {\n return new Date(Date.now() + systemClockOffset);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isClockSkewed } from './isClockSkewed';\n/**\n * Returns the difference between clock time and the current system time if clock is skewed.\n *\n * @param clockTimeInMilliseconds Clock time in milliseconds.\n * @param currentSystemClockOffset Current system clock offset in milliseconds.\n *\n * @internal\n */\nexport var getUpdatedSystemClockOffset = function (clockTimeInMilliseconds, currentSystemClockOffset) {\n if (isClockSkewed(clockTimeInMilliseconds, currentSystemClockOffset)) {\n return clockTimeInMilliseconds - Date.now();\n }\n return currentSystemClockOffset;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getSkewCorrectedDate } from './getSkewCorrectedDate';\n// 5 mins in milliseconds. Ref: https://github.com/aws/aws-sdk-js-v3/blob/6c0f44fab30a1bb2134af47362a31332abc3666b/packages/middleware-signing/src/utils/isClockSkewed.ts#L10\nvar SKEW_WINDOW = 5 * 60 * 1000;\n/**\n * Checks if the provided date is within the skew window of 5 minutes.\n *\n * @param clockTimeInMilliseconds Time to check for skew in milliseconds.\n * @param clockOffsetInMilliseconds Offset to check clock against in milliseconds.\n *\n * @returns True if skewed. False otherwise.\n *\n * @internal\n */\nexport var isClockSkewed = function (clockTimeInMilliseconds, clockOffsetInMilliseconds) {\n return Math.abs(getSkewCorrectedDate(clockOffsetInMilliseconds).getTime() -\n clockTimeInMilliseconds) >= SKEW_WINDOW;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { signRequest } from './signer/signatureV4';\nimport { getSkewCorrectedDate } from './utils/getSkewCorrectedDate';\nimport { getUpdatedSystemClockOffset } from './utils/getUpdatedSystemClockOffset';\n/**\n * Middleware that SigV4 signs request with AWS credentials, and correct system clock offset.\n * This middleware is expected to be placed after retry middleware.\n */\nexport var signingMiddleware = function (_a) {\n var credentials = _a.credentials, region = _a.region, service = _a.service, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n var currentSystemClockOffset;\n return function (next) {\n return function signingMiddleware(request) {\n return __awaiter(this, void 0, void 0, function () {\n var signRequestOptions, _a, signedRequest, response, dateString;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n currentSystemClockOffset = currentSystemClockOffset !== null && currentSystemClockOffset !== void 0 ? currentSystemClockOffset : 0;\n _b = {};\n if (!(typeof credentials === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, credentials()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = credentials;\n _c.label = 3;\n case 3:\n signRequestOptions = (_b.credentials = _a,\n _b.signingDate = getSkewCorrectedDate(currentSystemClockOffset),\n _b.signingRegion = region,\n _b.signingService = service,\n _b.uriEscapePath = uriEscapePath,\n _b);\n return [4 /*yield*/, signRequest(request, signRequestOptions)];\n case 4:\n signedRequest = _c.sent();\n return [4 /*yield*/, next(signedRequest)];\n case 5:\n response = _c.sent();\n dateString = getDateHeader(response);\n if (dateString) {\n currentSystemClockOffset = getUpdatedSystemClockOffset(Date.parse(dateString), currentSystemClockOffset);\n }\n return [2 /*return*/, response];\n }\n });\n });\n };\n };\n};\nvar getDateHeader = function (_a) {\n var _b, _c;\n var _d = _a === void 0 ? {} : _a, headers = _d.headers;\n return (_c = (_b = headers === null || headers === void 0 ? void 0 : headers.date) !== null && _b !== void 0 ? _b : headers === null || headers === void 0 ? void 0 : headers.Date) !== null && _c !== void 0 ? _c : headers === null || headers === void 0 ? void 0 : headers['x-amz-date'];\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// query params\nexport var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm';\nexport var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date';\nexport var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential';\nexport var EXPIRES_QUERY_PARAM = 'X-Amz-Expires';\nexport var REGION_SET_PARAM = 'X-Amz-Region-Set';\nexport var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature';\nexport var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders';\nexport var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token';\n// headers\nexport var AUTH_HEADER = 'authorization';\nexport var HOST_HEADER = 'host';\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\n// identifiers\nexport var KEY_TYPE_IDENTIFIER = 'aws4_request';\nexport var SHA256_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256';\nexport var SIGNATURE_IDENTIFIER = 'AWS4';\n// preset values\nexport var EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';\nexport var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ALGORITHM_QUERY_PARAM, AMZ_DATE_QUERY_PARAM, CREDENTIAL_QUERY_PARAM, EXPIRES_QUERY_PARAM, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_QUERY_PARAM, } from './constants';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `Presignable` object, returns a Signature Version 4 presigned `URL` object.\n *\n * @param presignable `Presignable` object containing at least a url to be presigned with authentication query params.\n * @param presignUrlOptions `PresignUrlOptions` object containing values used to construct the signature.\n * @returns A `URL` with authentication query params which can grant temporary access to AWS resources.\n */\nexport var presignUrl = function (_a, _b) {\n var _c, _d, _e, _f;\n var body = _a.body, _g = _a.method, method = _g === void 0 ? 'GET' : _g, url = _a.url;\n var expiration = _b.expiration, options = __rest(_b, [\"expiration\"]);\n var signingValues = getSigningValues(options);\n var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;\n // create the request to sign\n // @ts-ignore URL constructor accepts a URL object\n var presignedUrl = new URL(url);\n Object.entries(__assign(__assign((_c = {}, _c[ALGORITHM_QUERY_PARAM] = SHA256_ALGORITHM_IDENTIFIER, _c[CREDENTIAL_QUERY_PARAM] = \"\".concat(accessKeyId, \"/\").concat(credentialScope), _c[AMZ_DATE_QUERY_PARAM] = longDate, _c[SIGNED_HEADERS_QUERY_PARAM] = HOST_HEADER, _c), (expiration && (_d = {}, _d[EXPIRES_QUERY_PARAM] = expiration.toString(), _d))), (sessionToken && (_e = {}, _e[TOKEN_QUERY_PARAM] = sessionToken, _e)))).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n presignedUrl.searchParams.append(key, value);\n });\n var requestToSign = {\n body: body,\n headers: (_f = {}, _f[HOST_HEADER] = url.host, _f),\n method: method,\n url: presignedUrl,\n };\n // calculate and add the signature to the url\n var signature = getSignature(requestToSign, signingValues);\n presignedUrl.searchParams.append(SIGNATURE_QUERY_PARAM, signature);\n return presignedUrl;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getSignedHeaders } from './utils/getSignedHeaders';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { AMZ_DATE_HEADER, AUTH_HEADER, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, TOKEN_HEADER, } from './constants';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nexport var signRequest = function (request, options) {\n var signingValues = getSigningValues(options);\n var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;\n // create the request to sign\n var headers = __assign({}, request.headers);\n headers[HOST_HEADER] = request.url.host;\n headers[AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[TOKEN_HEADER] = sessionToken;\n }\n var requestToSign = __assign(__assign({}, request), { headers: headers });\n // calculate and add the signature to the request\n var signature = getSignature(requestToSign, signingValues);\n var credentialEntry = \"Credential=\".concat(accessKeyId, \"/\").concat(credentialScope);\n var signedHeadersEntry = \"SignedHeaders=\".concat(getSignedHeaders(headers));\n var signatureEntry = \"Signature=\".concat(signature);\n headers[AUTH_HEADER] = \"\".concat(SHA256_ALGORITHM_IDENTIFIER, \" \").concat(credentialEntry, \", \").concat(signedHeadersEntry, \", \").concat(signatureEntry);\n return requestToSign;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// TODO: V6 update to different crypto dependency?\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\n/**\n * Returns the hashed data a `Uint8Array`.\n *\n * @param key `SourceData` to be used as hashing key.\n * @param data Hashable `SourceData`.\n * @returns `Uint8Array` created from the data as input to a hash function.\n */\nexport var getHashedData = function (key, data) {\n var sha256 = new Sha256(key);\n sha256.update(data);\n // TODO: V6 flip to async digest\n var hashedData = sha256.digestSync();\n return hashedData;\n};\n/**\n * Returns the hashed data as a hex string.\n *\n * @param key `SourceData` to be used as hashing key.\n * @param data Hashable `SourceData`.\n * @returns String using lowercase hexadecimal characters created from the data as input to a hash function.\n *\n * @internal\n */\nexport var getHashedDataAsHex = function (key, data) {\n var hashedData = getHashedData(key, data);\n return toHex(hashedData);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EMPTY_HASH, UNSIGNED_PAYLOAD } from '../constants';\nimport { getHashedDataAsHex } from './dataHashHelpers';\n/**\n * Returns the hashed payload.\n *\n * @param body `body` (payload) from the request.\n * @returns String created using the payload in the body of the HTTP request as input to a hash function. This string\n * uses lowercase hexadecimal characters. If the payload is empty, return precalculated result of an empty hash.\n *\n * @internal\n */\nexport var getHashedPayload = function (body) {\n // return precalculated empty hash if body is undefined or null\n if (body == null) {\n return EMPTY_HASH;\n }\n if (isSourceData(body)) {\n var hashedData = getHashedDataAsHex(null, body);\n return hashedData;\n }\n // Defined body is not signable. Return unsigned payload which may or may not be accepted by the service.\n return UNSIGNED_PAYLOAD;\n};\nvar isSourceData = function (body) {\n return typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body);\n};\nvar isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === '[object ArrayBuffer]';\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Returns canonical headers.\n *\n * @param headers Headers from the request.\n * @returns Request headers that will be signed, and their values, separated by newline characters. Header names must\n * use lowercase characters, must appear in alphabetical order, and must be followed by a colon (:). For the values,\n * trim any leading or trailing spaces, convert sequential spaces to a single space, and separate the values\n * for a multi-value header using commas.\n *\n * @internal\n */\nexport var getCanonicalHeaders = function (headers) {\n return Object.entries(headers)\n .map(function (_a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n return ({\n key: key.toLowerCase(),\n value: (_b = value === null || value === void 0 ? void 0 : value.trim().replace(/\\s+/g, ' ')) !== null && _b !== void 0 ? _b : '',\n });\n })\n .sort(function (a, b) { return (a.key < b.key ? -1 : 1); })\n .map(function (entry) { return \"\".concat(entry.key, \":\").concat(entry.value, \"\\n\"); })\n .join('');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Returns a canonical query string.\n *\n * @param searchParams `searchParams` from the request url.\n * @returns URL-encoded query string parameters, separated by ampersands (&). Percent-encode reserved characters,\n * including the space character. Encode names and values separately. If there are empty parameters, append the equals\n * sign to the parameter name before encoding. After encoding, sort the parameters alphabetically by key name. If there\n * is no query string, use an empty string (\"\").\n *\n * @internal\n */\nexport var getCanonicalQueryString = function (searchParams) {\n return Array.from(searchParams)\n .sort(function (_a, _b) {\n var _c = __read(_a, 2), keyA = _c[0], valA = _c[1];\n var _d = __read(_b, 2), keyB = _d[0], valB = _d[1];\n if (keyA === keyB) {\n return valA < valB ? -1 : 1;\n }\n return keyA < keyB ? -1 : 1;\n })\n .map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], val = _b[1];\n return \"\".concat(escapeUri(key), \"=\").concat(escapeUri(val));\n })\n .join('&');\n};\nvar escapeUri = function (uri) {\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) {\n return \"%\".concat(c.charCodeAt(0).toString(16).toUpperCase());\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns a canonical uri.\n *\n * @param pathname `pathname` from request url.\n * @param uriEscapePath Whether to uri encode the path as part of canonical uri. It's used for S3 only where the\n * pathname is already uri encoded, and the signing process is not expected to uri encode it again. Defaults to true.\n * @returns URI-encoded version of the absolute path component URL (everything between the host and the question mark\n * character (?) that starts the query string parameters). If the absolute path is empty, a forward slash character (/).\n *\n * @internal\n */\nexport var getCanonicalUri = function (pathname, uriEscapePath) {\n if (uriEscapePath === void 0) { uriEscapePath = true; }\n return pathname\n ? uriEscapePath\n ? encodeURIComponent(pathname).replace(/%2F/g, '/')\n : pathname\n : '/';\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getHashedDataAsHex } from './dataHashHelpers';\nimport { getCanonicalRequest } from './getCanonicalRequest';\nimport { getSigningKey } from './getSigningKey';\nimport { getStringToSign } from './getStringToSign';\n/**\n * Calculates and returns an AWS API Signature.\n * https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns AWS API Signature to sign a request or url with.\n *\n * @internal\n */\nexport var getSignature = function (request, _a) {\n var credentialScope = _a.credentialScope, longDate = _a.longDate, secretAccessKey = _a.secretAccessKey, shortDate = _a.shortDate, signingRegion = _a.signingRegion, signingService = _a.signingService, uriEscapePath = _a.uriEscapePath;\n // step 1: create a canonical request\n var canonicalRequest = getCanonicalRequest(request, uriEscapePath);\n // step 2: create a hash of the canonical request\n var hashedRequest = getHashedDataAsHex(null, canonicalRequest);\n // step 3: create a string to sign\n var stringToSign = getStringToSign(longDate, credentialScope, hashedRequest);\n // step 4: calculate the signature\n var signature = getHashedDataAsHex(getSigningKey(secretAccessKey, shortDate, signingRegion, signingService), stringToSign);\n return signature;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCanonicalHeaders } from './getCanonicalHeaders';\nimport { getCanonicalQueryString } from './getCanonicalQueryString';\nimport { getCanonicalUri } from './getCanonicalUri';\nimport { getHashedPayload } from './getHashedPayload';\nimport { getSignedHeaders } from './getSignedHeaders';\n/**\n * Returns a canonical request.\n *\n * @param request `HttpRequest` from which to create the canonical request from.\n * @param uriEscapePath Whether to uri encode the path as part of canonical uri. It's used for S3 only where the\n * pathname is already uri encoded, and the signing process is not expected to uri encode it again. Defaults to true.\n * @returns String created by by concatenating the following strings, separated by newline characters:\n * - HTTPMethod\n * - CanonicalUri\n * - CanonicalQueryString\n * - CanonicalHeaders\n * - SignedHeaders\n * - HashedPayload\n *\n * @internal\n */\nexport var getCanonicalRequest = function (_a, uriEscapePath) {\n var body = _a.body, headers = _a.headers, method = _a.method, url = _a.url;\n if (uriEscapePath === void 0) { uriEscapePath = true; }\n return [\n method,\n getCanonicalUri(url.pathname, uriEscapePath),\n getCanonicalQueryString(url.searchParams),\n getCanonicalHeaders(headers),\n getSignedHeaders(headers),\n getHashedPayload(body),\n ].join('\\n');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SHA256_ALGORITHM_IDENTIFIER } from '../constants';\n/**\n * Returns a string to be signed.\n *\n * @param date Current date in the format 'YYYYMMDDThhmmssZ'.\n * @param credentialScope String representing the credential scope with format 'YYYYMMDD/region/service/aws4_request'.\n * @param hashedRequest Hashed canonical request.\n *\n * @returns A string created by by concatenating the following strings, separated by newline characters:\n * - Algorithm\n * - RequestDateTime\n * - CredentialScope\n * - HashedCanonicalRequest\n *\n * @internal\n */\nexport var getStringToSign = function (date, credentialScope, hashedRequest) {\n return [SHA256_ALGORITHM_IDENTIFIER, date, credentialScope, hashedRequest].join('\\n');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KEY_TYPE_IDENTIFIER, SIGNATURE_IDENTIFIER } from '../constants';\nimport { getHashedData } from './dataHashHelpers';\n/**\n * Returns a signing key to be used for signing requests.\n *\n * @param secretAccessKey AWS secret access key from credentials.\n * @param date Current date in the format 'YYYYMMDD'.\n * @param region AWS region in which the service resides.\n * @param service Service to which the signed request is being sent.\n *\n * @returns `Uint8Array` calculated from its composite parts.\n *\n * @internal\n */\nexport var getSigningKey = function (secretAccessKey, date, region, service) {\n var key = \"\".concat(SIGNATURE_IDENTIFIER).concat(secretAccessKey);\n var dateKey = getHashedData(key, date);\n var regionKey = getHashedData(dateKey, region);\n var serviceKey = getHashedData(regionKey, service);\n var signingKey = getHashedData(serviceKey, KEY_TYPE_IDENTIFIER);\n return signingKey;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns signed headers.\n *\n * @param headers `headers` from the request.\n * @returns List of headers included in canonical headers, separated by semicolons (;). This indicates which headers\n * are part of the signing process. Header names must use lowercase characters and must appear in alphabetical order.\n *\n * @internal\n */\nexport var getSignedHeaders = function (headers) {\n return Object.keys(headers)\n .map(function (key) { return key.toLowerCase(); })\n .sort()\n .join(';');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCredentialScope } from './getCredentialScope';\nimport { getFormattedDates } from './getFormattedDates';\n/**\n * Extracts common values used for signing both requests and urls.\n *\n * @param options `SignRequestOptions` object containing values used to construct the signature.\n * @returns Common `SigningValues` used for signing.\n *\n * @internal\n */\nexport var getSigningValues = function (_a) {\n var credentials = _a.credentials, _b = _a.signingDate, signingDate = _b === void 0 ? new Date() : _b, signingRegion = _a.signingRegion, signingService = _a.signingService, _c = _a.uriEscapePath, uriEscapePath = _c === void 0 ? true : _c;\n // get properties from credentials\n var accessKeyId = credentials.accessKeyId, secretAccessKey = credentials.secretAccessKey, sessionToken = credentials.sessionToken;\n // get formatted dates for signing\n var _d = getFormattedDates(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n // copy header and set signing properties\n var credentialScope = getCredentialScope(shortDate, signingRegion, signingService);\n return {\n accessKeyId: accessKeyId,\n credentialScope: credentialScope,\n longDate: longDate,\n secretAccessKey: secretAccessKey,\n sessionToken: sessionToken,\n shortDate: shortDate,\n signingRegion: signingRegion,\n signingService: signingService,\n uriEscapePath: uriEscapePath,\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KEY_TYPE_IDENTIFIER } from '../constants';\n/**\n * Returns the credential scope which restricts the resulting signature to the specified region and service.\n *\n * @param date Current date in the format 'YYYYMMDD'.\n * @param region AWS region in which the service resides.\n * @param service Service to which the signed request is being sent.\n *\n * @returns A string representing the credential scope with format 'YYYYMMDD/region/service/aws4_request'.\n *\n * @internal\n */\nexport var getCredentialScope = function (date, region, service) { return \"\".concat(date, \"/\").concat(region, \"/\").concat(service, \"/\").concat(KEY_TYPE_IDENTIFIER); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns expected date strings to be used in signing.\n *\n * @param date JavaScript `Date` object.\n * @returns `FormattedDates` object containing the following:\n * - longDate: A date string in 'YYYYMMDDThhmmssZ' format\n * - shortDate: A date string in 'YYYYMMDD' format\n *\n * @internal\n */\nexport var getFormattedDates = function (date) {\n var longDate = date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n return {\n longDate: longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Wraps encodeURIComponent to encode additional characters to fully adhere to RFC 3986.\n * @see https://github.com/aws/aws-sdk-js-v3/blob/86b432c464150069678b25ff88d57c2ca26e75a2/packages/smithy-client/src/extended-encode-uri-component.ts#L7\n *\n * @param uri URI string to encode\n * @returns RFC 3986 encoded string\n *\n * @internal\n */\nexport var extendedEncodeURIComponent = function (uri) {\n // Match characters normally not encoded by `encodeURIComponent`\n var extendedCharacters = /[!'()*]/g;\n return encodeURIComponent(uri).replace(extendedCharacters, hexEncode);\n};\nvar hexEncode = function (c) {\n return \"%\".concat(c.charCodeAt(0).toString(16).toUpperCase());\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * Middleware injects user agent string to specified header(default to 'x-amz-user-agent'),\n * if the header is not set already.\n *\n * TODO: incorporate new user agent design\n */\nexport var userAgentMiddleware = function (_a) {\n var _b = _a.userAgentHeader, userAgentHeader = _b === void 0 ? 'x-amz-user-agent' : _b, _c = _a.userAgentValue, userAgentValue = _c === void 0 ? '' : _c;\n return function (next) {\n return function userAgentMiddleware(request) {\n return __awaiter(this, void 0, void 0, function () {\n var result, headerName, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(userAgentValue.trim().length === 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, next(request)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result];\n case 2:\n headerName = userAgentHeader.toLowerCase();\n request.headers[headerName] = request.headers[headerName]\n ? \"\".concat(request.headers[headerName], \" \").concat(userAgentValue)\n : userAgentValue;\n return [4 /*yield*/, next(request)];\n case 3:\n response = _a.sent();\n return [2 /*return*/, response];\n }\n });\n });\n };\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { parseMetadata } from './responseInfo';\n/**\n * Utility functions for serializing and deserializing of JSON protocol in general(including: REST-JSON, JSON-RPC, etc.)\n */\n/**\n * Error parser for AWS JSON protocol.\n */\nexport var parseJsonError = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var body, sanitizeErrorCode, code, message, error;\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!response || response.statusCode < 300) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, parseJsonBody(response)];\n case 1:\n body = _f.sent();\n sanitizeErrorCode = function (rawValue) {\n var _a = __read(rawValue.toString().split(/[\\,\\:]+/), 1), cleanValue = _a[0];\n if (cleanValue.includes('#')) {\n return cleanValue.split('#')[1];\n }\n return cleanValue;\n };\n code = sanitizeErrorCode((_c = (_b = (_a = response.headers['x-amzn-errortype']) !== null && _a !== void 0 ? _a : body.code) !== null && _b !== void 0 ? _b : body.__type) !== null && _c !== void 0 ? _c : 'UnknownError');\n message = (_e = (_d = body.message) !== null && _d !== void 0 ? _d : body.Message) !== null && _e !== void 0 ? _e : 'Unknown error';\n error = new Error(message);\n return [2 /*return*/, Object.assign(error, {\n name: code,\n $metadata: parseMetadata(response),\n })];\n }\n });\n}); };\n/**\n * Parse JSON response body to JavaScript object.\n */\nexport var parseJsonBody = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var output;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!response.body) {\n throw new Error('Missing response payload');\n }\n return [4 /*yield*/, response.body.json()];\n case 1:\n output = _a.sent();\n return [2 /*return*/, Object.assign(output, {\n $metadata: parseMetadata(response),\n })];\n }\n });\n}); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport var parseMetadata = function (response) {\n var _a, _b;\n var headers = response.headers, statusCode = response.statusCode;\n return __assign(__assign({}, (isMetadataBearer(response) ? response.$metadata : {})), { httpStatusCode: statusCode, requestId: (_b = (_a = headers['x-amzn-requestid']) !== null && _a !== void 0 ? _a : headers['x-amzn-request-id']) !== null && _b !== void 0 ? _b : headers['x-amz-request-id'], extendedRequestId: headers['x-amz-id-2'], cfId: headers['x-amz-cf-id'] });\n};\nvar isMetadataBearer = function (response) {\n return typeof (response === null || response === void 0 ? void 0 : response['$metadata']) === 'object';\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Cache the payload of a response body. It allows multiple calls to the body,\n * for example, when reading the body in both retry decider and error deserializer.\n * Caching body is allowed here because we call the body accessor(blob(), json(),\n * etc.) when body is small or streaming implementation is not available(RN).\n *\n * @internal\n */\nexport var withMemoization = function (payloadAccessor) {\n var cached;\n return function () {\n if (!cached) {\n // Explicitly not awaiting. Intermediate await would add overhead and\n // introduce a possible race in the event that this wrapper is called\n // again before the first `payloadAccessor` call resolves.\n cached = payloadAccessor();\n }\n return cached;\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * This Symbol is used to reference an internal-only PubSub provider that\n * is used for AppSync/GraphQL subscriptions in the API category.\n */\nvar hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function';\nexport var INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER';\nexport var USER_AGENT_HEADER = 'x-amz-user-agent';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseAWSExports = function (config) {\n var amplifyConfig = {};\n // Analytics\n if (config['aws_mobile_analytics_app_id']) {\n var Analytics = {\n AWSPinpoint: {\n appId: config['aws_mobile_analytics_app_id'],\n region: config['aws_mobile_analytics_app_region'],\n },\n };\n amplifyConfig.Analytics = Analytics;\n }\n // Auth\n if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n amplifyConfig.Auth = {\n userPoolId: config['aws_user_pools_id'],\n userPoolWebClientId: config['aws_user_pools_web_client_id'],\n region: config['aws_cognito_region'],\n identityPoolId: config['aws_cognito_identity_pool_id'],\n identityPoolRegion: config['aws_cognito_region'],\n mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n signUpVerificationMethod: config['aws_cognito_sign_up_verification_method'] || 'code',\n };\n }\n // Storage\n var storageConfig;\n if (config['aws_user_files_s3_bucket']) {\n storageConfig = {\n AWSS3: {\n bucket: config['aws_user_files_s3_bucket'],\n region: config['aws_user_files_s3_bucket_region'],\n dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'],\n },\n };\n }\n else {\n storageConfig = config ? config.Storage || config : {};\n }\n // Logging\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), { region: config['aws_project_region'] });\n }\n // Geo\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service'],\n };\n }\n }\n amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics);\n amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n amplifyConfig.Storage = Object.assign({}, storageConfig);\n amplifyConfig.Logging = Object.assign({}, amplifyConfig.Logging, config.Logging);\n logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n return amplifyConfig;\n};\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Drop-in replacement for fast-xml-parser's XmlParser class used in the AWS SDK S3 client XML deserializer. This\n * implementation is not tested against the full xml conformance test suite. It is only tested against the XML responses\n * from S3. This implementation requires the `DOMParser` class in the runtime.\n */\nexport var parser = {\n parse: function (xmlStr) {\n var domParser = new DOMParser();\n var xml = domParser.parseFromString(xmlStr, 'text/xml');\n var parsedObj = parseXmlNode(xml);\n var rootKey = Object.keys(parsedObj)[0];\n return parsedObj[rootKey];\n },\n};\nvar parseXmlNode = function (node) {\n var _a;\n var _b, _c;\n if (isDocumentNode(node)) {\n return _a = {},\n _a[node.documentElement.nodeName] = parseXmlNode(node.documentElement),\n _a;\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return (_b = node.nodeValue) === null || _b === void 0 ? void 0 : _b.trim();\n }\n if (isElementNode(node)) {\n // Node like foo will be converted to { Location: 'foo' }\n // instead of { Location: { '#text': 'foo' } }.\n if (isTextOnlyElementNode(node)) {\n return (_c = node.childNodes[0]) === null || _c === void 0 ? void 0 : _c.nodeValue;\n }\n var nodeValue = {};\n // convert attributes\n for (var i = 0; i < node.attributes.length; i++) {\n var attr = node.attributes[i];\n if (!isNamespaceAttributeName(attr.nodeName)) {\n nodeValue[attr.nodeName] = attr.nodeValue;\n }\n }\n // convert child nodes\n if (node.children.length > 0) {\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n var childValue = parseXmlNode(child);\n if (childValue === undefined) {\n continue;\n }\n var childName = child.nodeName;\n if (nodeValue[childName] === undefined) {\n nodeValue[childName] = childValue;\n }\n else if (Array.isArray(nodeValue[childName])) {\n nodeValue[childName].push(childValue);\n }\n else {\n nodeValue[childName] = [nodeValue[childName], childValue];\n }\n }\n }\n // Return empty element node as empty string instead of `{}`, which is the default behavior of fast-xml-parser.\n return Object.keys(nodeValue).length === 0 ? '' : nodeValue;\n }\n};\nvar isElementNode = function (node) {\n return node.nodeType === Node.ELEMENT_NODE;\n};\nvar isDocumentNode = function (node) {\n return node.nodeType === Node.DOCUMENT_NODE;\n};\nvar isTextOnlyElementNode = function (node) {\n var _a;\n return hasOnlyNamespaceAttributes(node) &&\n node.children.length === 0 &&\n ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.nodeType) === Node.TEXT_NODE;\n};\nvar hasOnlyNamespaceAttributes = function (node) {\n for (var i = 0; i < node.attributes.length; i++) {\n var attr = node.attributes[i];\n if (!isNamespaceAttributeName(attr.nodeName)) {\n return false;\n }\n }\n return true;\n};\nvar isNamespaceAttributeName = function (name) {\n return name === 'xmlns' || name.startsWith('xmlns:');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { parser } from '../runtime';\nexport var parseXmlError = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var statusCode, body, code, message, error;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!response || response.statusCode < 300) {\n return [2 /*return*/];\n }\n statusCode = response.statusCode;\n return [4 /*yield*/, parseXmlBody(response)];\n case 1:\n body = _c.sent();\n code = (body === null || body === void 0 ? void 0 : body['Code'])\n ? body.Code\n : statusCode === 404\n ? 'NotFound'\n : statusCode.toString();\n message = (_b = (_a = body === null || body === void 0 ? void 0 : body['message']) !== null && _a !== void 0 ? _a : body === null || body === void 0 ? void 0 : body['Message']) !== null && _b !== void 0 ? _b : code;\n error = new Error(message);\n return [2 /*return*/, Object.assign(error, {\n name: code,\n $metadata: parseMetadata(response),\n })];\n }\n });\n}); };\nexport var parseXmlBody = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!response.body) {\n // S3 can return 200 without a body indicating failure.\n throw new Error('S3 aborted request.');\n }\n return [4 /*yield*/, response.body.text()];\n case 1:\n data = _a.sent();\n if ((data === null || data === void 0 ? void 0 : data.length) > 0) {\n try {\n return [2 /*return*/, parser.parse(data)];\n }\n catch (error) {\n throw new Error('Failed to parse XML response.');\n }\n }\n return [2 /*return*/, {}];\n }\n });\n}); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getAmplifyUserAgent } from '@aws-amplify/core';\nimport { getDnsSuffix, jitteredBackoff, getRetryDecider, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { parseXmlError } from './utils';\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nexport var SERVICE_NAME = 's3';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region, and input parameters.\n */\nvar endpointResolver = function (options, apiInput) {\n var region = options.region, useAccelerateEndpoint = options.useAccelerateEndpoint, customEndpoint = options.customEndpoint, forcePathStyle = options.forcePathStyle;\n var endpoint;\n // 1. get base endpoint\n if (customEndpoint) {\n endpoint = new URL(customEndpoint);\n }\n else if (useAccelerateEndpoint) {\n if (forcePathStyle) {\n throw new Error('Path style URLs are not supported with S3 Transfer Acceleration.');\n }\n endpoint = new URL(\"https://s3-accelerate.\".concat(getDnsSuffix(region)));\n }\n else {\n endpoint = new URL(\"https://s3.\".concat(region, \".\").concat(getDnsSuffix(region)));\n }\n // 2. inject bucket name\n if (apiInput === null || apiInput === void 0 ? void 0 : apiInput.Bucket) {\n if (!isDnsCompatibleBucketName(apiInput.Bucket)) {\n throw new Error(\"Invalid bucket name: \\\"\".concat(apiInput.Bucket, \"\\\".\"));\n }\n if (forcePathStyle || apiInput.Bucket.includes('.')) {\n endpoint.pathname = \"/\".concat(apiInput.Bucket);\n }\n else {\n endpoint.host = \"\".concat(apiInput.Bucket, \".\").concat(endpoint.host);\n }\n }\n return { url: endpoint };\n};\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://github.com/aws/aws-sdk-js-v3/blob/f2da6182298d4d6b02e84fb723492c07c27469a8/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts#L39-L48\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nexport var isDnsCompatibleBucketName = function (bucketName) {\n return DOMAIN_PATTERN.test(bucketName) &&\n !IP_ADDRESS_PATTERN.test(bucketName) &&\n !DOTS_PATTERN.test(bucketName);\n};\n/**\n * @internal\n */\nexport var defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver: endpointResolver,\n retryDecider: getRetryDecider(parseXmlError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n useAccelerateEndpoint: false,\n uriEscapePath: false, // Required by S3. See https://github.com/aws/aws-sdk-js-v3/blob/9ba012dfa3a3429aa2db0f90b3b0b3a7a31f9bc3/packages/signature-v4/src/SignatureV4.ts#L76-L83\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 16;\n/**\n * @internal\n */\nexport var INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRSA9IDY0O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgRElHRVNUX0xFTkdUSCA9IDE2O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFsweDY3NDUyMzAxLCAweGVmY2RhYjg5LCAweDk4YmFkY2ZlLCAweDEwMzI1NDc2XTtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nvar Md5 = /** @class */ (function () {\n function Md5() {\n this.state = Uint32Array.from(INIT);\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n }\n Md5.prototype.update = function (sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n }\n else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var data = convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n Md5.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, buffer, undecoratedLength, bytesHashed, bitsHashed, i, i, out, i;\n return __generator(this, function (_b) {\n if (!this.finished) {\n _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return [2 /*return*/, new Uint8Array(out.buffer, out.byteOffset, out.byteLength)];\n });\n });\n };\n Md5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xffffffff;\n state[1] = (b + state[1]) & 0xffffffff;\n state[2] = (c + state[2]) & 0xffffffff;\n state[3] = (d + state[3]) & 0xffffffff;\n };\n return Md5;\n}());\nexport { Md5 };\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQ7SUFBQTtRQUNVLFVBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUE2STNCLENBQUM7SUEzSUMsb0JBQU0sR0FBTixVQUFPLFVBQXNCO1FBQzNCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFNLElBQUksR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsT0FBTyxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVELFVBQVUsRUFBRSxDQUFDO1lBRWIsSUFBSSxJQUFJLENBQUMs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QUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN2QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFDSCxVQUFDO0FBQUQsQ0FBQyxBQWxKRCxJQWtKQzs7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDM0UsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQ3JGLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBZ0I7SUFDbkMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQWdCO0lBQ3ZDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDckc7SUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuXG5pbXBvcnQgeyBCTE9DS19TSVpFLCBESUdFU1RfTEVOR1RILCBJTklUIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNZDUgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBzdGF0ZSA9IFVpbnQzMkFycmF5LmZyb20oSU5JVCk7XG4gIHByaXZhdGUgYnVmZmVyOiBEYXRhVmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoQkxPQ0tfU0laRSkpO1xuICBwcml2YXRlIGJ1ZmZlckxlbmd0aCA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQgPSAwO1xuICBwcml2YXRlIGZpbmlzaGVkID0gZmFsc2U7XG5cbiAgdXBkYXRlKHNvdXJjZURhdGE6IFNvdXJjZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoaXNFbXB0eURhdGEoc291cmNlRGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byB1cGRhdGUgYW4gYWxyZWFkeSBmaW5pc2hlZCBoYXNoLlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gY29udmVydFRvQnVmZmVyKHNvdXJjZURhdGEpO1xuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgZGF0YVtwb3NpdGlvbisrXSk7XG4gICAgICBieXRlTGVuZ3RoLS07XG5cbiAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gQkxPQ0tfU0laRSkge1xuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgIGNvbnN0IHsgYnVmZmVyLCBidWZmZXJMZW5ndGg6IHVuZGVjb3JhdGVkTGVuZ3RoLCBieXRlc0hhc2hlZCB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGJpdHNIYXNoZWQgPSBieXRlc0hhc2hlZCAqIDg7XG4gICAgICBidWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgMGIxMDAwMDAwMCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgZmluYWwgYmxvY2sgaGFzIGVub3VnaCByb29tIGZvciB0aGUgaGFzaGVkIGxlbmd0aFxuICAgICAgaWYgKHVuZGVjb3JhdGVkTGVuZ3RoICUgQkxPQ0tfU0laRSA+PSBCTE9DS19TSVpFIC0gOCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRSAtIDg7IGkrKykge1xuICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXIuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA4LCBiaXRzSGFzaGVkID4+PiAwLCB0cnVlKTtcbiAgICAgIGJ1ZmZlci5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDQsIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSwgdHJ1ZSk7XG5cbiAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuXG4gICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXQgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKERJR0VTVF9MRU5HVEgpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgb3V0LnNldFVpbnQzMihpICogNCwgdGhpcy5zdGF0ZVtpXSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dC5idWZmZXIsIG91dC5ieXRlT2Zmc2V0LCBvdXQuYnl0ZUxlbmd0aCk7XG4gIH1cblxuICBwcml2YXRlIGhhc2hCdWZmZXIoKTogdm9pZCB7XG4gICAgY29uc3QgeyBidWZmZXIsIHN0YXRlIH0gPSB0aGlzO1xuXG4gICAgbGV0IGEgPSBzdGF0ZVswXSxcbiAgICAgIGIgPSBzdGF0ZVsxXSxcbiAgICAgIGMgPSBzdGF0ZVsyXSxcbiAgICAgIGQgPSBzdGF0ZVszXTtcblxuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCA3LCAweGQ3NmFhNDc4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgMTIsIDB4ZThjN2I3NTYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDgsIHRydWUpLCAxNywgMHgyNDIwNzBkYik7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAyMiwgMHhjMWJkY2VlZSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMTYsIHRydWUpLCA3LCAweGY1N2MwZmFmKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDEyLCAweDQ3ODdjNjJhKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyNCwgdHJ1ZSksIDE3LCAweGE4MzA0NjEzKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDIyLCAweGZkNDY5NTAxKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDcsIDB4Njk4MDk4ZDgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgMTIsIDB4OGI0NGY3YWYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQwLCB0cnVlKSwgMTcsIDB4ZmZmZjViYjEpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMjIsIDB4ODk1Y2Q3YmUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNywgMHg2YjkwMTEyMik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCAxMiwgMHhmZDk4NzE5Myk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNTYsIHRydWUpLCAxNywgMHhhNjc5NDM4ZSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNjAsIHRydWUpLCAyMiwgMHg0OWI0MDgyMSk7XG5cbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgNSwgMHhmNjFlMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCA5LCAweGMwNDBiMzQwKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDE0LCAweDI2NWU1YTUxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgMjAsIDB4ZTliNmM3YWEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgNSwgMHhkNjJmMTA1ZCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCA5LCAweDAyNDQxNDUzKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE0LCAweGQ4YTFlNjgxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDIwLCAweGU3ZDNmYmM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDUsIDB4MjFlMWNkZTYpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgOSwgMHhjMzM3MDdkNik7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNCwgMHhmNGQ1MGQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCAyMCwgMHg0NTVhMTRlZCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCA1LCAweGE5ZTNlOTA1KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgOSwgMHhmY2VmYTNmOCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxNCwgMHg2NzZmMDJkOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCAyMCwgMHg4ZDJhNGM4YSk7XG5cbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDQsIDB4ZmZmYTM5NDIpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgMTEsIDB4ODc3MWY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTYsIDB4NmQ5ZDYxMjIpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMjMsIDB4ZmRlNTM4MGMpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCA0LCAweGE0YmVlYTQ0KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDExLCAweDRiZGVjZmE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDE2LCAweGY2YmI0YjYwKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDIzLCAweGJlYmZiYzcwKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDQsIDB4Mjg5YjdlYzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCAxMSwgMHhlYWExMjdmYSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNiwgMHhkNGVmMzA4NSk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAyMywgMHgwNDg4MWQwNSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCA0LCAweGQ5ZDRkMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDExLCAweGU2ZGI5OWU1KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE2LCAweDFmYTI3Y2Y4KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMjMsIDB4YzRhYzU2NjUpO1xuXG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMCwgdHJ1ZSksIDYsIDB4ZjQyOTIyNDQpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDI4LCB0cnVlKSwgMTAsIDB4NDMyYWZmOTcpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMTUsIDB4YWI5NDIzYTcpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgMjEsIDB4ZmM5M2EwMzkpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNiwgMHg2NTViNTljMyk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxMCwgMHg4ZjBjY2M5Mik7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCAxNSwgMHhmZmVmZjQ3ZCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNCwgdHJ1ZSksIDIxLCAweDg1ODQ1ZGQxKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDYsIDB4NmZhODdlNGYpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDYwLCB0cnVlKSwgMTAsIDB4ZmUyY2U2ZTApO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDI0LCB0cnVlKSwgMTUsIDB4YTMwMTQzMTQpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDUyLCB0cnVlKSwgMjEsIDB4NGUwODExYTEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDE2LCB0cnVlKSwgNiwgMHhmNzUzN2U4Mik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDQsIHRydWUpLCAxMCwgMHhiZDNhZjIzNSk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoOCwgdHJ1ZSksIDE1LCAweDJhZDdkMmJiKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDIxLCAweGViODZkMzkxKTtcblxuICAgIHN0YXRlWzBdID0gKGEgKyBzdGF0ZVswXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzFdID0gKGIgKyBzdGF0ZVsxXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzJdID0gKGMgKyBzdGF0ZVsyXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzNdID0gKGQgKyBzdGF0ZVszXSkgJiAweGZmZmZmZmZmO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNtbihxOiBudW1iZXIsIGE6IG51bWJlciwgYjogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIGEgPSAoKChhICsgcSkgJiAweGZmZmZmZmZmKSArICgoeCArIHQpICYgMHhmZmZmZmZmZikpICYgMHhmZmZmZmZmZjtcbiAgcmV0dXJuICgoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpKSArIGIpICYgMHhmZmZmZmZmZjtcbn1cblxuZnVuY3Rpb24gZmYoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBjKSB8ICh+YiAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gZ2coYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBkKSB8IChjICYgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaGgoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaWkoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYyBeIChiIHwgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eURhdGEoZGF0YTogU291cmNlRGF0YSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZGF0YS5sZW5ndGggPT09IDA7XG4gIH1cblxuICByZXR1cm4gZGF0YS5ieXRlTGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEuYnVmZmVyLCBkYXRhLmJ5dGVPZmZzZXQsIGRhdGEuYnl0ZUxlbmd0aCAvIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEpO1xufVxuIl19","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nfunction bytesToBase64(bytes) {\n var base64Str = Array.from(bytes, function (x) { return String.fromCodePoint(x); }).join('');\n return btoa(base64Str);\n}\nexport function utf8Encode(input) {\n return new TextEncoder().encode(input);\n}\nexport function toBase64(input) {\n if (typeof input === 'string') {\n return bytesToBase64(utf8Encode(input));\n }\n return bytesToBase64(new Uint8Array(input.buffer, input.byteOffset, input.byteLength));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Md5 } from '@aws-sdk/md5-js';\nimport { extendedEncodeURIComponent } from '@aws-amplify/core/internals/aws-client-utils';\nimport { toBase64, utf8Encode } from '../utils';\n/**\n * @internal\n */\nexport var assignStringVariables = function (values) {\n var e_1, _a;\n var queryParams = {};\n try {\n for (var _b = __values(Object.entries(values)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n if (value != null) {\n queryParams[key] = value.toString();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return queryParams;\n};\nexport var serializeObjectSsecOptionsToHeaders = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var getMd5Digest, _a, _b, _c, _d;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n getMd5Digest = function (content) { return __awaiter(void 0, void 0, void 0, function () {\n var md5Hasher;\n return __generator(this, function (_a) {\n md5Hasher = new Md5();\n md5Hasher.update(utf8Encode(content));\n return [2 /*return*/, md5Hasher.digest()];\n });\n }); };\n _a = assignStringVariables;\n _e = {\n 'x-amz-server-side-encryption-customer-algorithm': input.SSECustomerAlgorithm,\n // base64 encoded is need\n // see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#specifying-s3-c-encryption\n 'x-amz-server-side-encryption-customer-key': input.SSECustomerKey && toBase64(input.SSECustomerKey)\n };\n // Calculate the md5 digest of the the SSE-C key, for compatibility with AWS SDK\n // see: https://github.com/aws/aws-sdk-js-v3/blob/91fc83307c38cc9cbe0b3acd919557d5b5b831d6/packages/middleware-ssec/src/index.ts#L36\n _b = 'x-amz-server-side-encryption-customer-key-md5';\n _c = input.SSECustomerKey;\n if (!_c) return [3 /*break*/, 2];\n _d = toBase64;\n return [4 /*yield*/, getMd5Digest(input.SSECustomerKey)];\n case 1:\n _c = _d.apply(void 0, [_f.sent()]);\n _f.label = 2;\n case 2: return [2 /*return*/, _a.apply(void 0, [(\n // Calculate the md5 digest of the the SSE-C key, for compatibility with AWS SDK\n // see: https://github.com/aws/aws-sdk-js-v3/blob/91fc83307c38cc9cbe0b3acd919557d5b5b831d6/packages/middleware-ssec/src/index.ts#L36\n _e[_b] = _c,\n _e)])];\n }\n });\n}); };\n/**\n * Serailize the parameters for configuring the S3 object. Currently used by\n * `putObject` and `createMultipartUpload` API.\n *\n * @internal\n */\nexport var serializeObjectConfigsToHeaders = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [{}];\n return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1: return [2 /*return*/, (__assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), assignStringVariables(__assign({ 'x-amz-server-side-encryption': input.ServerSideEncryption, 'x-amz-server-side-encryption-aws-kms-key-id': input.SSEKMSKeyId, 'x-amz-acl': input.ACL, 'cache-control': input.CacheControl, 'content-disposition': input.ContentDisposition, 'content-language': input.ContentLanguage, 'content-encoding': input.ContentEncoding, 'content-type': input.ContentType, expires: (_b = input.Expires) === null || _b === void 0 ? void 0 : _b.toUTCString(), 'x-amz-tagging': input.Tagging }, serializeMetadata(input.Metadata)))]))];\n }\n });\n}); };\nvar serializeMetadata = function (metadata) {\n if (metadata === void 0) { metadata = {}; }\n return Object.keys(metadata).reduce(function (acc, suffix) {\n acc[\"x-amz-meta-\".concat(suffix.toLowerCase())] = metadata[suffix];\n return acc;\n }, {});\n};\n/**\n * Serialize the object key to a URL pathname.\n * @see https://github.com/aws/aws-sdk-js-v3/blob/7ed7101dcc4e81038b6c7f581162b959e6b33a04/clients/client-s3/src/protocols/Aws_restXml.ts#L1108\n *\n * @internal\n */\nexport var serializePathnameObjectKey = function (url, key) {\n return (url.pathname.replace(/\\/$/, '') +\n \"/\".concat(key.split('/').map(extendedEncodeURIComponent).join('/')));\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var StorageErrorStrings;\n(function (StorageErrorStrings) {\n StorageErrorStrings[\"NO_CREDENTIALS\"] = \"No credentials\";\n StorageErrorStrings[\"NO_SRC_KEY\"] = \"source param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"NO_DEST_KEY\"] = \"destination param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"INVALID_BLOB\"] = \"Object must be an instance of Blob\";\n})(StorageErrorStrings || (StorageErrorStrings = {}));\nexport var AWSS3ProviderMultipartCopierErrors;\n(function (AWSS3ProviderMultipartCopierErrors) {\n AWSS3ProviderMultipartCopierErrors[\"CLEANUP_FAILED\"] = \"Multipart copy clean up failed\";\n AWSS3ProviderMultipartCopierErrors[\"NO_OBJECT_FOUND\"] = \"Object does not exist\";\n AWSS3ProviderMultipartCopierErrors[\"INVALID_QUEUESIZE\"] = \"Queue size must be a positive number\";\n AWSS3ProviderMultipartCopierErrors[\"NO_COPYSOURCE\"] = \"You must specify a copy source\";\n AWSS3ProviderMultipartCopierErrors[\"MAX_NUM_PARTS_EXCEEDED\"] = \"Only a maximum of 10000 parts are allowed\";\n})(AWSS3ProviderMultipartCopierErrors || (AWSS3ProviderMultipartCopierErrors = {}));\nexport var AWSS3ProviderUploadErrorStrings;\n(function (AWSS3ProviderUploadErrorStrings) {\n AWSS3ProviderUploadErrorStrings[\"UPLOAD_PAUSED_MESSAGE\"] = \"paused\";\n})(AWSS3ProviderUploadErrorStrings || (AWSS3ProviderUploadErrorStrings = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var SEND_UPLOAD_PROGRESS_EVENT = 'sendUploadProgress';\nexport var SEND_DOWNLOAD_PROGRESS_EVENT = 'sendDownloadProgress';\nexport var NETWORK_ERROR_MESSAGE = 'Network Error';\nexport var NETWORK_ERROR_CODE = 'ECONNABORTED';\nexport var ABORT_ERROR_MESSAGE = 'Request aborted';\nexport var ABORT_ERROR_CODE = 'ERR_ABORTED';\nexport var CANCELED_ERROR_MESSAGE = 'canceled';\nexport var CANCELED_ERROR_CODE = 'ERR_CANCELED';\nexport var CONTENT_SHA256_HEADER = 'x-amz-content-sha256';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { getHashedPayload, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { CONTENT_SHA256_HEADER } from './constants';\n/**\n * A middleware that adds the x-amz-content-sha256 header to the request if it is not already present.\n * It's required for S3 requests in browsers where the request body is sent in 1 chunk.\n * @see https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html\n *\n * @internal\n */\nexport var contentSha256Middleware = function (options) { return function (next) {\n return function contentSha256Middleware(request) {\n return __awaiter(this, void 0, void 0, function () {\n var hash;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!request.headers[CONTENT_SHA256_HEADER]) return [3 /*break*/, 1];\n return [2 /*return*/, next(request)];\n case 1: return [4 /*yield*/, getHashedPayload(request.body)];\n case 2:\n hash = _a.sent();\n request.headers[CONTENT_SHA256_HEADER] = hash;\n return [2 /*return*/, next(request)];\n }\n });\n });\n };\n}; };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { withMemoization, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, ABORT_ERROR_CODE, ABORT_ERROR_MESSAGE, CANCELED_ERROR_CODE, CANCELED_ERROR_MESSAGE, NETWORK_ERROR_CODE, NETWORK_ERROR_MESSAGE, } from './constants';\nvar logger = new Logger('xhr-http-handler');\n/**\n * Base transfer handler implementation using XMLHttpRequest to support upload and download progress events.\n *\n * @param request - The request object.\n * @param options - The request options.\n * @returns A promise that will be resolved with the response object.\n *\n * @internal\n */\nexport var xhrTransferHandler = function (request, options) {\n var url = request.url, method = request.method, headers = request.headers, body = request.body;\n var emitter = options.emitter, responseType = options.responseType, abortSignal = options.abortSignal;\n return new Promise(function (resolve, reject) {\n var _a;\n var xhr = new XMLHttpRequest();\n xhr.open(method.toUpperCase(), url.toString());\n Object.entries(headers)\n .filter(function (_a) {\n var _b = __read(_a, 1), header = _b[0];\n return !FORBIDDEN_HEADERS.includes(header);\n })\n .forEach(function (_a) {\n var _b = __read(_a, 2), header = _b[0], value = _b[1];\n xhr.setRequestHeader(header, value);\n });\n xhr.responseType = responseType;\n if (emitter) {\n xhr.upload.addEventListener('progress', function (event) {\n emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n });\n xhr.addEventListener('progress', function (event) {\n emitter.emit(SEND_DOWNLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n });\n }\n xhr.addEventListener('error', function () {\n var error = simulateAxiosError(NETWORK_ERROR_MESSAGE, NETWORK_ERROR_CODE, xhr, options);\n logger.error(NETWORK_ERROR_MESSAGE);\n reject(error);\n xhr = null; // clean up request\n });\n // Handle browser request cancellation (as opposed to a manual cancellation)\n xhr.addEventListener('abort', function () {\n // The abort event can be triggered after the error or load event. So we need to check if the xhr is null.\n if (!xhr || (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted))\n return;\n var error = simulateAxiosError(ABORT_ERROR_MESSAGE, ABORT_ERROR_CODE, xhr, options);\n logger.error(ABORT_ERROR_MESSAGE);\n reject(error);\n xhr = null; // clean up request\n });\n // Skip handling timeout error since we don't have a timeout\n xhr.addEventListener('readystatechange', function () {\n if (!xhr || xhr.readyState !== xhr.DONE) {\n return;\n }\n var onloadend = function () {\n // The load event is triggered after the error/abort/load event. So we need to check if the xhr is null.\n if (!xhr)\n return;\n var responseHeaders = convertResponseHeaders(xhr.getAllResponseHeaders());\n var responseType = xhr.responseType;\n var responseBlob = xhr.response;\n var responseText = responseType === 'text' ? xhr.responseText : '';\n var bodyMixIn = {\n blob: function () { return Promise.resolve(responseBlob); },\n text: withMemoization(function () {\n return responseType === 'blob'\n ? readBlobAsText(responseBlob)\n : Promise.resolve(responseText);\n }),\n json: function () {\n return Promise.reject(\n // S3 does not support JSON response. So fail-fast here with nicer error message.\n new Error('Parsing response to JSON is not implemented. Please use response.text() instead.'));\n },\n };\n var response = {\n statusCode: xhr.status,\n headers: responseHeaders,\n // The xhr.responseType is only set to 'blob' for streaming binary S3 object data. The streaming data is\n // exposed via public interface of Storage.get(). So we need to return the response as a Blob object for\n // backward compatibility. In other cases, the response payload is only used internally, we return it is\n // {@link ResponseBodyMixin}\n body: (xhr.responseType === 'blob'\n ? Object.assign(responseBlob, bodyMixIn)\n : bodyMixIn),\n };\n resolve(response);\n xhr = null; // clean up request\n };\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n // @see https://github.com/axios/axios/blob/9588fcdec8aca45c3ba2f7968988a5d03f23168c/lib/adapters/xhr.js#L98-L99\n setTimeout(onloadend);\n });\n if (abortSignal) {\n var onCancelled = function () {\n // The abort event is triggered after the error or load event. So we need to check if the xhr is null.\n if (!xhr) {\n return;\n }\n var canceledError = simulateAxiosCanceledError(CANCELED_ERROR_MESSAGE !== null && CANCELED_ERROR_MESSAGE !== void 0 ? CANCELED_ERROR_MESSAGE : abortSignal.reason, CANCELED_ERROR_CODE, xhr, options);\n xhr.abort();\n reject(canceledError);\n xhr = null;\n };\n abortSignal.aborted\n ? onCancelled()\n : abortSignal.addEventListener('abort', onCancelled);\n }\n if (typeof ReadableStream === 'function' &&\n body instanceof ReadableStream) {\n // This does not matter as previous implementation uses Axios which does not support ReadableStream anyway.\n throw new Error('ReadableStream request payload is not supported.');\n }\n xhr.send((_a = body) !== null && _a !== void 0 ? _a : null);\n });\n};\n// TODO: V6 remove this\nvar simulateAxiosError = function (message, code, request, config) {\n return Object.assign(new Error(message), {\n code: code,\n config: config,\n request: request,\n });\n};\nvar simulateAxiosCanceledError = function (message, code, request, config) {\n var error = simulateAxiosError(message, code, request, config);\n error.name = 'CanceledError';\n error['__CANCEL__'] = true;\n return error;\n};\nexport var isCancelError = function (error) {\n return !!(error === null || error === void 0 ? void 0 : error['__CANCEL__']);\n};\n/**\n * Convert xhr.getAllResponseHeaders() string to a Record. Note that modern browser already returns\n * header names in lowercase.\n * @param xhrHeaders - string of headers returned from xhr.getAllResponseHeaders()\n */\nvar convertResponseHeaders = function (xhrHeaders) {\n if (!xhrHeaders) {\n return {};\n }\n return xhrHeaders\n .split('\\r\\n')\n .reduce(function (headerMap, line) {\n var parts = line.split(': ');\n var header = parts.shift();\n var value = parts.join(': ');\n headerMap[header.toLowerCase()] = value;\n return headerMap;\n }, {});\n};\nvar readBlobAsText = function (blob) {\n var reader = new FileReader();\n return new Promise(function (resolve, reject) {\n reader.onloadend = function () {\n if (reader.readyState !== FileReader.DONE) {\n return;\n }\n resolve(reader.result);\n };\n reader.onerror = function () {\n reject(reader.error);\n };\n reader.readAsText(blob);\n });\n};\n// To add more forbidden headers as found set by S3. Intentionally NOT list all of them here to save bundle size.\n// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name\nvar FORBIDDEN_HEADERS = ['host'];\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddleware, signingMiddleware, userAgentMiddleware, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { contentSha256Middleware } from '../contentSha256middleware';\nimport { xhrTransferHandler } from '../xhrTransferHandler';\n/**\n * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header, and request&response process tracking.\n *\n * @internal\n */\nexport var s3TransferHandler = composeTransferHandler(xhrTransferHandler, [\n contentSha256Middleware,\n userAgentMiddleware,\n retryMiddleware,\n signingMiddleware,\n]);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { assignStringVariables, parseXmlBody, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, } from './utils';\nvar copyObjectSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, _a, url;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = [{}];\n return [4 /*yield*/, serializeObjectConfigsToHeaders(input)];\n case 1:\n headers = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b.sent())])), assignStringVariables({\n 'x-amz-copy-source': input.CopySource,\n 'x-amz-metadata-directive': input.MetadataDirective,\n })]);\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return [2 /*return*/, {\n method: 'PUT',\n headers: headers,\n url: url,\n }];\n }\n });\n}); };\nvar copyObjectDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseXmlBody(response)];\n case 3:\n _a.sent();\n return [2 /*return*/, {\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\nexport var copyObject = composeServiceApi(s3TransferHandler, copyObjectSerializer, copyObjectDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps an object to a new object using the provided instructions.\n * The instructions are a map of the returning mapped object's property names to a single instruction of how to map the\n * value from the original object to the new object. There are two types of instructions:\n *\n * 1. A string representing the property name of the original object to map to the new object. The value mapped from\n * the original object will be the same as the value in the new object, and it can ONLY be string.\n *\n * 2. An array of two elements. The first element is the property name of the original object to map to the new object.\n * The second element is a function that takes the value from the original object and returns the value to be mapped to\n * the new object. The function can return any type.\n *\n * Example:\n * ```typescript\n * const input = {\n * Foo: 'foo',\n * BarList: [{value: 'bar1'}, {value: 'bar2'}]\n * }\n * const output = map(input, {\n * someFoo: 'Foo',\n * bar: ['BarList', (barList) => barList.map(bar => bar.value)]\n * baz: 'Baz' // Baz does not exist in input, so it will not be in the output.\n * });\n * // output = { someFoo: 'foo', bar: ['bar1', 'bar2'] }\n * ```\n *\n * @param obj The object containing the data to compose mapped object.\n * @param instructions The instructions mapping the object values to the new object.\n * @returns A new object with the mapped values.\n *\n * @internal\n */\nexport var map = function (obj, instructions) {\n var e_1, _a;\n var result = {};\n try {\n for (var _b = __values(Object.entries(instructions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], instruction = _d[1];\n var _e = __read(Array.isArray(instruction)\n ? instruction\n : [instruction], 2), accessor = _e[0], deserializer = _e[1];\n if (obj.hasOwnProperty(accessor)) {\n result[key] = deserializer\n ? deserializer(obj[accessor])\n : String(obj[accessor]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n};\n/**\n * Deserializes a string to a number. Returns undefined if input is undefined.\n *\n * @internal\n */\nexport var deserializeNumber = function (value) {\n return value ? Number(value) : undefined;\n};\n/**\n * Deserializes a string to a boolean. Returns undefined if input is undefined. Returns true if input is 'true',\n * otherwise false.\n *\n * @internal\n */\nexport var deserializeBoolean = function (value) {\n return value ? value === 'true' : undefined;\n};\n/**\n * Deserializes a string to a Date. Returns undefined if input is undefined.\n * It supports epoch timestamp; rfc3339(cannot have a UTC, fractional precision supported); rfc7231(section 7.1.1.1)\n *\n * @see https://www.epoch101.com/\n * @see https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6\n * @see https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.1.1\n *\n * @note For bundle size consideration, we use Date constructor to parse the timestamp string. There might be slight\n * difference among browsers.\n *\n * @internal\n */\nexport var deserializeTimestamp = function (value) {\n return value ? new Date(value) : undefined;\n};\n/**\n * Function that makes sure the deserializer receives non-empty array.\n *\n * @internal\n */\nexport var emptyArrayGuard = function (value, deserializer) {\n if (value === '') {\n return [];\n }\n var valueArray = (Array.isArray(value) ? value : [value]).filter(function (e) { return e != null; });\n return deserializer(valueArray);\n};\n/**\n * @internal\n */\nexport var deserializeMetadata = function (headers) {\n var objectMetadataHeaderPrefix = 'x-amz-meta-';\n var deserialized = Object.keys(headers)\n .filter(function (header) { return header.startsWith(objectMetadataHeaderPrefix); })\n .reduce(function (acc, header) {\n acc[header.replace(objectMetadataHeaderPrefix, '')] = headers[header];\n return acc;\n }, {});\n return Object.keys(deserialized).length > 0 ? deserialized : undefined;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { parseMetadata, presignUrl, EMPTY_SHA256_HASH, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { USER_AGENT_HEADER } from '@aws-amplify/core';\nimport { defaultConfig } from './base';\nimport { deserializeBoolean, deserializeMetadata, deserializeNumber, deserializeTimestamp, map, parseXmlError, s3TransferHandler, serializeObjectSsecOptionsToHeaders, serializePathnameObjectKey, CONTENT_SHA256_HEADER, } from './utils';\nvar getObjectSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, query, url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1:\n headers = _a.sent();\n query = map(input, {\n 'response-cache-control': 'ResponseCacheControl',\n 'response-content-disposition': 'ResponseContentDisposition',\n 'response-content-encoding': 'ResponseContentEncoding',\n 'response-content-language': 'ResponseContentLanguage',\n 'response-content-type': 'ResponseContentType',\n });\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new URLSearchParams(query).toString();\n return [2 /*return*/, {\n method: 'GET',\n headers: headers,\n url: url,\n }];\n }\n });\n}); };\nvar getObjectDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2:\n if (!response.body) {\n throw new Error('Got empty response body.');\n }\n else {\n return [2 /*return*/, __assign(__assign({}, map(response.headers, {\n DeleteMarker: ['x-amz-delete-marker', deserializeBoolean],\n AcceptRanges: 'accept-ranges',\n Expiration: 'x-amz-expiration',\n Restore: 'x-amz-restore',\n LastModified: ['last-modified', deserializeTimestamp],\n ContentLength: ['content-length', deserializeNumber],\n ETag: 'etag',\n ChecksumCRC32: 'x-amz-checksum-crc32',\n ChecksumCRC32C: 'x-amz-checksum-crc32c',\n ChecksumSHA1: 'x-amz-checksum-sha1',\n ChecksumSHA256: 'x-amz-checksum-sha256',\n MissingMeta: ['x-amz-missing-meta', deserializeNumber],\n VersionId: 'x-amz-version-id',\n CacheControl: 'cache-control',\n ContentDisposition: 'content-disposition',\n ContentEncoding: 'content-encoding',\n ContentLanguage: 'content-language',\n ContentRange: 'content-range',\n ContentType: 'content-type',\n Expires: ['expires', deserializeTimestamp],\n WebsiteRedirectLocation: 'x-amz-website-redirect-location',\n ServerSideEncryption: 'x-amz-server-side-encryption',\n SSECustomerAlgorithm: 'x-amz-server-side-encryption-customer-algorithm',\n SSECustomerKeyMD5: 'x-amz-server-side-encryption-customer-key-md5',\n SSEKMSKeyId: 'x-amz-server-side-encryption-aws-kms-key-id',\n BucketKeyEnabled: [\n 'x-amz-server-side-encryption-bucket-key-enabled',\n deserializeBoolean,\n ],\n StorageClass: 'x-amz-storage-class',\n RequestCharged: 'x-amz-request-charged',\n ReplicationStatus: 'x-amz-replication-status',\n PartsCount: ['x-amz-mp-parts-count', deserializeNumber],\n TagCount: ['x-amz-tagging-count', deserializeNumber],\n ObjectLockMode: 'x-amz-object-lock-mode',\n ObjectLockRetainUntilDate: [\n 'x-amz-object-lock-retain-until-date',\n deserializeTimestamp,\n ],\n ObjectLockLegalHoldStatus: 'x-amz-object-lock-legal-hold',\n })), { Metadata: deserializeMetadata(response.headers), $metadata: parseMetadata(response), Body: response.body })];\n }\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexport var getObject = composeServiceApi(s3TransferHandler, getObjectSerializer, getObjectDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'blob' }));\n/**\n * Get a presigned URL for the `getObject` API.\n *\n * @internal\n */\nexport var getPresignedGetObjectUrl = function (config, input) { return __awaiter(void 0, void 0, void 0, function () {\n var endpoint, _a, url, headers, method, _b, _c, _d, headerName, value;\n var e_1, _e;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n endpoint = defaultConfig.endpointResolver(config, input);\n return [4 /*yield*/, getObjectSerializer(input, endpoint)];\n case 1:\n _a = _g.sent(), url = _a.url, headers = _a.headers, method = _a.method;\n // TODO: set content sha256 query parameter with value of UNSIGNED-PAYLOAD.\n // It requires changes in presignUrl. Without this change, the generated url still works,\n // but not the same as other tools like AWS SDK and CLI.\n url.searchParams.append(CONTENT_SHA256_HEADER, EMPTY_SHA256_HASH);\n url.searchParams.append((_f = config.userAgentHeader) !== null && _f !== void 0 ? _f : USER_AGENT_HEADER, config.userAgentValue);\n try {\n for (_b = __values(Object.entries(headers).sort(function (_a, _b) {\n var _c = __read(_a, 1), key1 = _c[0];\n var _d = __read(_b, 1), key2 = _d[0];\n return key1.localeCompare(key2);\n })), _c = _b.next(); !_c.done; _c = _b.next()) {\n _d = __read(_c.value, 2), headerName = _d[0], value = _d[1];\n url.searchParams.append(headerName, value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [2 /*return*/, presignUrl({ method: method, url: url, body: null }, __assign(__assign({}, defaultConfig), config)).toString()];\n }\n });\n}); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { deserializeMetadata, deserializeNumber, deserializeTimestamp, map, parseXmlError, s3TransferHandler, serializeObjectSsecOptionsToHeaders, serializePathnameObjectKey, } from './utils';\nvar headObjectSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1:\n headers = _a.sent();\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return [2 /*return*/, {\n method: 'HEAD',\n headers: headers,\n url: url,\n }];\n }\n });\n}); };\nvar headObjectDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2:\n contents = __assign(__assign({}, map(response.headers, {\n ContentLength: ['content-length', deserializeNumber],\n ContentType: 'content-type',\n ETag: 'etag',\n LastModified: ['last-modified', deserializeTimestamp],\n VersionId: 'x-amz-version-id',\n })), { Metadata: deserializeMetadata(response.headers) });\n return [2 /*return*/, __assign({ $metadata: parseMetadata(response) }, contents)];\n }\n });\n}); };\nexport var headObject = composeServiceApi(s3TransferHandler, headObjectSerializer, headObjectDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { deserializeBoolean, map, parseXmlError, s3TransferHandler, serializePathnameObjectKey, } from './utils';\nvar deleteObjectSerializer = function (input, endpoint) {\n var url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return {\n method: 'DELETE',\n headers: {},\n url: url,\n };\n};\nvar deleteObjectDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, content;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2:\n content = map(response.headers, {\n DeleteMarker: ['x-amz-delete-marker', deserializeBoolean],\n VersionId: 'x-amz-version-id',\n RequestCharged: 'x-amz-request-charged',\n });\n return [2 /*return*/, __assign(__assign({}, content), { $metadata: parseMetadata(response) })];\n }\n });\n}); };\nexport var deleteObject = composeServiceApi(s3TransferHandler, deleteObjectSerializer, deleteObjectDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { assignStringVariables, deserializeBoolean, deserializeNumber, deserializeTimestamp, emptyArrayGuard, map, parseXmlBody, parseXmlError, s3TransferHandler, } from './utils';\nvar listObjectsV2Serializer = function (input, endpoint) {\n var headers = assignStringVariables({\n 'x-amz-request-payer': input.RequestPayer,\n 'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n });\n var query = assignStringVariables({\n 'list-type': '2',\n 'continuation-token': input.ContinuationToken,\n delimiter: input.Delimiter,\n 'encoding-type': input.EncodingType,\n 'fetch-owner': input.FetchOwner,\n 'max-keys': input.MaxKeys,\n prefix: input.Prefix,\n 'start-after': input.StartAfter,\n });\n var url = new URL(endpoint.url.toString());\n url.search = new URLSearchParams(query).toString();\n return {\n method: 'GET',\n headers: headers,\n url: url,\n };\n};\nvar listObjectsV2Deserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, parsed, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseXmlBody(response)];\n case 3:\n parsed = _a.sent();\n contents = map(parsed, {\n CommonPrefixes: [\n 'CommonPrefixes',\n function (value) { return emptyArrayGuard(value, deserializeCommonPrefixList); },\n ],\n Contents: [\n 'Contents',\n function (value) { return emptyArrayGuard(value, deserializeObjectList); },\n ],\n ContinuationToken: 'ContinuationToken',\n Delimiter: 'Delimiter',\n EncodingType: 'EncodingType',\n IsTruncated: ['IsTruncated', deserializeBoolean],\n KeyCount: ['KeyCount', deserializeNumber],\n MaxKeys: ['MaxKeys', deserializeNumber],\n Name: 'Name',\n NextContinuationToken: 'NextContinuationToken',\n Prefix: 'Prefix',\n StartAfter: 'StartAfter',\n });\n return [2 /*return*/, __assign({ $metadata: parseMetadata(response) }, contents)];\n }\n });\n}); };\nvar deserializeCommonPrefixList = function (output) {\n return output.map(deserializeCommonPrefix);\n};\nvar deserializeCommonPrefix = function (output) {\n return map(output, {\n Prefix: 'Prefix',\n });\n};\nvar deserializeObjectList = function (output) { return output.map(deserializeObject); };\nvar deserializeObject = function (output) {\n return map(output, {\n Key: 'Key',\n LastModified: ['LastModified', deserializeTimestamp],\n ETag: 'ETag',\n ChecksumAlgorithm: [\n 'ChecksumAlgorithm',\n function (value) { return emptyArrayGuard(value, deserializeChecksumAlgorithmList); },\n ],\n Size: ['Size', deserializeNumber],\n StorageClass: 'StorageClass',\n Owner: ['Owner', deserializeOwner],\n });\n};\nvar deserializeChecksumAlgorithmList = function (output) {\n return output.map(function (entry) { return String(entry); });\n};\nvar deserializeOwner = function (output) {\n return map(output, { DisplayName: 'DisplayName', ID: 'ID' });\n};\nexport var listObjectsV2 = composeServiceApi(s3TransferHandler, listObjectsV2Serializer, listObjectsV2Deserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var localTestingStorageEndpoint = 'http://localhost:20005';\nexport var UPLOADS_STORAGE_KEY = '__uploadInProgress';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { Logger } from '@aws-amplify/core';\nimport { createMultipartUpload, uploadPart, listObjectsV2, listParts, completeMultipartUpload, abortMultipartUpload, } from '../AwsClients/S3';\nimport { isCancelError, CANCELED_ERROR_MESSAGE } from '../AwsClients/S3/utils';\nimport { calculatePartSize, DEFAULT_PART_SIZE, DEFAULT_QUEUE_SIZE, MAX_OBJECT_SIZE, } from '../common/S3ClientUtils';\nimport { byteLength, isFile } from '../common/StorageUtils';\nimport { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';\nvar logger = new Logger('AWSS3UploadTask');\nexport var AWSS3UploadTaskState;\n(function (AWSS3UploadTaskState) {\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"INIT\"] = 0] = \"INIT\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"IN_PROGRESS\"] = 1] = \"IN_PROGRESS\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"PAUSED\"] = 2] = \"PAUSED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"CANCELLED\"] = 3] = \"CANCELLED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"COMPLETED\"] = 4] = \"COMPLETED\";\n})(AWSS3UploadTaskState || (AWSS3UploadTaskState = {}));\nexport var TaskEvents;\n(function (TaskEvents) {\n TaskEvents[\"CANCEL\"] = \"cancel\";\n TaskEvents[\"UPLOAD_COMPLETE\"] = \"uploadComplete\";\n TaskEvents[\"UPLOAD_PROGRESS\"] = \"uploadPartProgress\";\n TaskEvents[\"ERROR\"] = \"error\";\n})(TaskEvents || (TaskEvents = {}));\nfunction comparePartNumber(a, b) {\n return a.PartNumber - b.PartNumber;\n}\nvar AWSS3UploadTask = /** @class */ (function () {\n function AWSS3UploadTask(_a) {\n var s3Config = _a.s3Config, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;\n this.queueSize = DEFAULT_QUEUE_SIZE;\n this.partSize = DEFAULT_PART_SIZE;\n this.inProgress = [];\n this.completedParts = [];\n this.queued = [];\n this.bytesUploaded = 0;\n this.totalBytes = 0;\n this.state = AWSS3UploadTaskState.INIT;\n this.prefixPromise = prefixPromise;\n this.s3Config = s3Config;\n this.storage = storage;\n this.storageSync = Promise.resolve();\n if (typeof this.storage['sync'] === 'function') {\n this.storageSync = this.storage['sync']();\n }\n this.params = params;\n this.file = file;\n this.totalBytes = this.file.size;\n this.bytesUploaded = 0;\n this.emitter = emitter;\n this.queued = [];\n this.fileId = this._getFileId(level);\n this._validateParams();\n // event emitter will re-throw an error if an event emits an error unless there's a listener, attaching a no-op\n // function to it unless user adds their own onError callback\n this.emitter.on(TaskEvents.ERROR, function () { });\n }\n Object.defineProperty(AWSS3UploadTask.prototype, \"percent\", {\n get: function () {\n return (this.bytesUploaded / this.totalBytes) * 100;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AWSS3UploadTask.prototype, \"isInProgress\", {\n get: function () {\n return this.state === AWSS3UploadTaskState.IN_PROGRESS;\n },\n enumerable: false,\n configurable: true\n });\n AWSS3UploadTask.prototype._listSingleFile = function (_a) {\n var key = _a.key, bucket = _a.bucket;\n return __awaiter(this, void 0, void 0, function () {\n var objectKeyPrefix, _b, Contents, obj;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.prefixPromise];\n case 1:\n objectKeyPrefix = _c.sent();\n return [4 /*yield*/, listObjectsV2(this.s3Config, {\n Bucket: bucket,\n Prefix: objectKeyPrefix + key,\n })];\n case 2:\n _b = (_c.sent()).Contents, Contents = _b === void 0 ? [] : _b;\n obj = Contents.find(function (o) { return o.Key === \"\".concat(objectKeyPrefix).concat(key); });\n return [2 /*return*/, obj];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._getFileId = function (level) {\n // We should check if it's a File first because File is also instance of a Blob\n if (isFile(this.file)) {\n return [\n this.file.name,\n this.file.lastModified,\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n else {\n return [\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n };\n AWSS3UploadTask.prototype._findCachedUploadParts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests, cachedUploadFileData, _a, Parts, _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _e.sent();\n if (Object.keys(uploadRequests).length === 0 ||\n !Object.prototype.hasOwnProperty.call(uploadRequests, this.fileId)) {\n return [2 /*return*/, { parts: [], uploadId: null }];\n }\n cachedUploadFileData = uploadRequests[this.fileId];\n cachedUploadFileData.lastTouched = Date.now();\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n _b = listParts;\n _c = [this.s3Config];\n _d = {\n Bucket: this.params.Bucket\n };\n return [4 /*yield*/, this.prefixPromise];\n case 2: return [4 /*yield*/, _b.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key,\n _d.UploadId = cachedUploadFileData.uploadId,\n _d)]))];\n case 3:\n _a = (_e.sent()).Parts, Parts = _a === void 0 ? [] : _a;\n return [2 /*return*/, {\n parts: Parts,\n uploadId: cachedUploadFileData.uploadId,\n }];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._emitEvent = function (event, payload) {\n this.emitter.emit(event, payload);\n };\n AWSS3UploadTask.prototype._validateParams = function () {\n if (this.totalBytes > MAX_OBJECT_SIZE) {\n throw new Error(\"File size bigger than S3 Object limit of 5TB, got \".concat(this.totalBytes, \" Bytes\"));\n }\n };\n AWSS3UploadTask.prototype._listCachedUploadTasks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var tasks;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.storageSync];\n case 1:\n _a.sent();\n tasks = this.storage.getItem(UPLOADS_STORAGE_KEY) || '{}';\n return [2 /*return*/, JSON.parse(tasks)];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._cache = function (fileMetadata) {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n uploadRequests[this.fileId] = fileMetadata;\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isCached = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = (_a = Object.prototype.hasOwnProperty).call;\n return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(), this.fileId])];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._removeFromCache = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n delete uploadRequests[this.fileId];\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._onPartUploadCompletion = function (_a) {\n var eTag = _a.eTag, partNumber = _a.partNumber, chunk = _a.chunk;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n this.completedParts.push({\n ETag: eTag,\n PartNumber: partNumber,\n });\n this.bytesUploaded += byteLength(chunk);\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n // Remove the completed item from the inProgress array\n this.inProgress = this.inProgress.filter(function (job) { return job.uploadPartInput.PartNumber !== partNumber; });\n if (this.queued.length && this.state !== AWSS3UploadTaskState.PAUSED)\n this._startNextPart();\n if (this._isDone())\n this._completeUpload();\n return [2 /*return*/];\n });\n });\n };\n AWSS3UploadTask.prototype._completeUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, err_1;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 4, , 5]);\n _a = completeMultipartUpload;\n _b = [this.s3Config];\n _c = {\n Bucket: this.params.Bucket\n };\n return [4 /*yield*/, this.prefixPromise];\n case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([(_c.Key = (_d.sent()) + this.params.Key,\n _c.UploadId = this.uploadId,\n _c.MultipartUpload = {\n // Parts are not always completed in order, we need to manually sort them\n Parts: __spreadArray([], __read(this.completedParts), false).sort(comparePartNumber),\n },\n _c)]))];\n case 2:\n _d.sent();\n return [4 /*yield*/, this._verifyFileSize()];\n case 3:\n _d.sent();\n this._emitEvent(TaskEvents.UPLOAD_COMPLETE, {\n key: this.params.Key,\n });\n this._removeFromCache();\n this.state = AWSS3UploadTaskState.COMPLETED;\n return [3 /*break*/, 5];\n case 4:\n err_1 = _d.sent();\n logger.error('error completing upload', err_1);\n this._emitEvent(TaskEvents.ERROR, err_1);\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, abortSignal) {\n return __awaiter(this, void 0, void 0, function () {\n var res, _a, _b, _c, err_2;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 4, , 5]);\n _a = uploadPart;\n _b = [__assign(__assign({}, this.s3Config), { abortSignal: abortSignal })];\n _c = [__assign({}, input)];\n _d = {};\n return [4 /*yield*/, this.prefixPromise];\n case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([__assign.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key, _d)]))]))];\n case 2:\n res = _e.sent();\n return [4 /*yield*/, this._onPartUploadCompletion({\n eTag: res.ETag,\n partNumber: input.PartNumber,\n chunk: input.Body,\n })];\n case 3:\n _e.sent();\n return [3 /*break*/, 5];\n case 4:\n err_2 = _e.sent();\n if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.log('upload paused');\n }\n else if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.log('upload aborted');\n }\n else {\n logger.error('error starting next part of upload: ', err_2);\n }\n // xhr transfer handlers' cancel will also throw an error, however we don't need to emit an event in that case as it's an\n // expected behavior\n if (!isCancelError(err_2) && err_2.message !== CANCELED_ERROR_MESSAGE) {\n this._emitEvent(TaskEvents.ERROR, err_2);\n this.pause();\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._startNextPart = function () {\n if (this.queued.length > 0 && this.state !== AWSS3UploadTaskState.PAUSED) {\n var abortController = new AbortController();\n var nextPart = this.queued.shift();\n this.inProgress.push({\n uploadPartInput: nextPart,\n s3Request: this._makeUploadPartRequest(nextPart, abortController.signal),\n abortController: abortController,\n });\n }\n };\n /**\n * Verify on S3 side that the file size matches the one on the client side.\n *\n * @async\n * @throws throws an error if the file size does not match between local copy of the file and the file on s3.\n */\n AWSS3UploadTask.prototype._verifyFileSize = function () {\n return __awaiter(this, void 0, void 0, function () {\n var valid, obj, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._listSingleFile({\n key: this.params.Key,\n bucket: this.params.Bucket,\n })];\n case 1:\n obj = _a.sent();\n valid = Boolean(obj && obj.Size === this.file.size);\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n logger.log('Could not get file on s3 for size matching: ', e_1);\n // Don't gate verification on auth or other errors\n // unrelated to file size verification\n return [2 /*return*/];\n case 3:\n if (!valid) {\n throw new Error('File size does not match between local file and file on s3');\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isDone = function () {\n return (!this.queued.length &&\n !this.inProgress.length &&\n this.bytesUploaded === this.totalBytes);\n };\n AWSS3UploadTask.prototype._createParts = function () {\n var size = this.file.size;\n var parts = [];\n for (var bodyStart = 0; bodyStart < size;) {\n var bodyEnd = Math.min(bodyStart + this.partSize, size);\n parts.push({\n Body: this.file.slice(bodyStart, bodyEnd),\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n PartNumber: parts.length + 1,\n UploadId: this.uploadId,\n });\n bodyStart += this.partSize;\n }\n return parts;\n };\n AWSS3UploadTask.prototype._initCachedUploadParts = function (cachedParts) {\n this.bytesUploaded += cachedParts.reduce(function (acc, part) { return acc + part.Size; }, 0);\n // Find the set of part numbers that have already been uploaded\n var uploadedPartNumSet = new Set(cachedParts.map(function (part) { return part.PartNumber; }));\n this.queued = this.queued.filter(function (part) { return !uploadedPartNumSet.has(part.PartNumber); });\n this.completedParts = cachedParts.map(function (part) { return ({\n PartNumber: part.PartNumber,\n ETag: part.ETag,\n }); });\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n };\n AWSS3UploadTask.prototype._initMultipartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res, _a, _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = createMultipartUpload;\n _b = [this.s3Config];\n _c = [__assign({}, this.params)];\n _d = {};\n return [4 /*yield*/, this.prefixPromise];\n case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([__assign.apply(void 0, _c.concat([(_d.Key = (_e.sent()) + this.params.Key, _d)]))]))];\n case 2:\n res = _e.sent();\n this._cache({\n uploadId: res.UploadId,\n lastTouched: Date.now(),\n bucket: this.params.Bucket,\n key: this.params.Key,\n fileName: this.file instanceof File ? this.file.name : '',\n });\n return [2 /*return*/, res.UploadId];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._initializeUploadTask = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, parts, uploadId, uploadId, err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n this.partSize = calculatePartSize(this.totalBytes);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 8]);\n return [4 /*yield*/, this._isCached()];\n case 2:\n if (!_b.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, this._findCachedUploadParts()];\n case 3:\n _a = _b.sent(), parts = _a.parts, uploadId = _a.uploadId;\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._initCachedUploadParts(parts);\n if (this._isDone()) {\n this._completeUpload();\n }\n else {\n this._startUpload();\n }\n return [3 /*break*/, 6];\n case 4:\n if (!!this.uploadId) return [3 /*break*/, 6];\n return [4 /*yield*/, this._initMultipartUpload()];\n case 5:\n uploadId = _b.sent();\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._startUpload();\n _b.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n err_3 = _b.sent();\n if (!isCancelError(err_3)) {\n logger.error('Error initializing the upload task', err_3);\n this._emitEvent(TaskEvents.ERROR, err_3);\n }\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype.resume = function () {\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.IN_PROGRESS) {\n logger.warn('Upload task already in progress');\n // first time running resume, find any cached parts on s3 or start a new multipart upload request before\n // starting the upload\n }\n else if (!this.uploadId) {\n this._initializeUploadTask();\n }\n else {\n this._startUpload();\n }\n };\n AWSS3UploadTask.prototype._startUpload = function () {\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n for (var i = 0; i < this.queueSize; i++) {\n this._startNextPart();\n }\n };\n AWSS3UploadTask.prototype._cancel = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, err_4;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!(this.state === AWSS3UploadTaskState.CANCELLED)) return [3 /*break*/, 1];\n logger.warn('This task has already been cancelled');\n return [2 /*return*/, false];\n case 1:\n if (!(this.state === AWSS3UploadTaskState.COMPLETED)) return [3 /*break*/, 2];\n logger.warn('This task has already been completed');\n return [2 /*return*/, false];\n case 2:\n this.pause();\n this.queued = [];\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.state = AWSS3UploadTaskState.CANCELLED;\n _d.label = 3;\n case 3:\n _d.trys.push([3, 7, , 8]);\n _a = abortMultipartUpload;\n _b = [this.s3Config];\n _c = {\n Bucket: this.params.Bucket\n };\n return [4 /*yield*/, this.prefixPromise];\n case 4: return [4 /*yield*/, _a.apply(void 0, _b.concat([(_c.Key = (_d.sent()) + this.params.Key,\n _c.UploadId = this.uploadId,\n _c)]))];\n case 5:\n _d.sent();\n return [4 /*yield*/, this._removeFromCache()];\n case 6:\n _d.sent();\n return [2 /*return*/, true];\n case 7:\n err_4 = _d.sent();\n logger.error('Error cancelling upload task', err_4);\n return [2 /*return*/, false];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * pause this particular upload task\n **/\n AWSS3UploadTask.prototype.pause = function () {\n var _a;\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.warn('This task is already paused');\n }\n this.state = AWSS3UploadTaskState.PAUSED;\n // Abort the part request immediately\n // Add the inProgress parts back to pending\n var removedInProgressReq = this.inProgress.splice(0, this.inProgress.length);\n removedInProgressReq.forEach(function (req) {\n req.abortController.abort();\n });\n // Put all removed in progress parts back into the queue\n (_a = this.queued).unshift.apply(_a, __spreadArray([], __read(removedInProgressReq.map(function (req) { return req.uploadPartInput; })), false));\n };\n return AWSS3UploadTask;\n}());\nexport { AWSS3UploadTask };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from './StorageConstants';\nexport var byteLength = function (x) {\n if (typeof x === 'string') {\n return x.length;\n }\n else if (isArrayBuffer(x)) {\n return x.byteLength;\n }\n else if (isBlob(x)) {\n return x.size;\n }\n else {\n throw new Error('Cannot determine byte length of ' + x);\n }\n};\nexport var dispatchStorageEvent = function (track, event, attrs, metrics, message) {\n if (track) {\n var data = { attrs: attrs };\n if (metrics) {\n data['metrics'] = metrics;\n }\n Hub.dispatch('storage', {\n event: event,\n data: data,\n message: message,\n }, 'Storage', AMPLIFY_SYMBOL);\n }\n};\nexport var isFile = function (x) {\n return typeof x !== 'undefined' && x instanceof File;\n};\nexport var isBlob = function (x) {\n return typeof x !== 'undefined' && x instanceof Blob;\n};\nvar isArrayBuffer = function (x) {\n return typeof x !== 'undefined' && x instanceof ArrayBuffer;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Category, Credentials, Logger, getAmplifyUserAgent, } from '@aws-amplify/core';\nimport { localTestingStorageEndpoint } from './StorageConstants';\nvar logger = new Logger('S3ClientUtils');\n// placeholder credentials in order to satisfy type requirement, always results in 403 when used\nvar INVALID_CRED = { accessKeyId: '', secretAccessKey: '' };\nexport var getPrefix = function (config) {\n var credentials = config.credentials, level = config.level, customPrefix = config.customPrefix, identityId = config.identityId;\n var resolvedCustomPrefix = customPrefix || {};\n var resolvedIdentityId = identityId || credentials.identityId;\n var privatePath = (resolvedCustomPrefix.private !== undefined\n ? resolvedCustomPrefix.private\n : 'private/') +\n resolvedIdentityId +\n '/';\n var protectedPath = (resolvedCustomPrefix.protected !== undefined\n ? resolvedCustomPrefix.protected\n : 'protected/') +\n resolvedIdentityId +\n '/';\n var publicPath = resolvedCustomPrefix.public !== undefined\n ? resolvedCustomPrefix.public\n : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n};\nexport var credentialsProvider = function () { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, INVALID_CRED];\n cred = Credentials.shear(credentials);\n logger.debug('credentials provider get credentials', cred);\n return [2 /*return*/, cred];\n case 2:\n error_1 = _a.sent();\n logger.warn('credentials provider error', error_1);\n return [2 /*return*/, INVALID_CRED];\n case 3: return [2 /*return*/];\n }\n });\n}); };\n/**\n * A function that persists the s3 configs, so we don't need to\n * assign each config parameter for every s3 API call.\n *\n * @inernal\n */\nexport var loadS3Config = function (config) {\n if (!config.region) {\n // Same error thrown by aws-sdk\n throw new Error('Region is missing.');\n }\n return __assign(__assign(__assign({}, config), { region: config.region, credentials: config.credentials\n ? function () { return Promise.resolve(config.credentials); }\n : credentialsProvider, userAgentValue: getAmplifyUserAgent({\n category: Category.Storage,\n action: config.storageAction,\n }) }), (config.dangerouslyConnectToHttpEndpointForTesting\n ? {\n customEndpoint: localTestingStorageEndpoint,\n forcePathStyle: true,\n }\n : {}));\n};\nvar MiB = 1024 * 1024;\nvar GiB = 1024 * MiB;\nvar TiB = 1024 * GiB;\nexport var DEFAULT_PART_SIZE = 5 * MiB;\nexport var MAX_OBJECT_SIZE = 5 * TiB;\nexport var MAX_PARTS_COUNT = 10000;\nexport var DEFAULT_QUEUE_SIZE = 4;\nexport var calculatePartSize = function (totalSize) {\n var partSize = DEFAULT_PART_SIZE;\n var partsCount = Math.ceil(totalSize / partSize);\n while (partsCount > MAX_PARTS_COUNT) {\n partSize *= 2;\n partsCount = Math.ceil(totalSize / partSize);\n }\n return partSize;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { assignStringVariables, map, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, } from './utils';\nvar putObjectSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, _a, url;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [{}];\n return [4 /*yield*/, serializeObjectConfigsToHeaders(__assign(__assign({}, input), { ContentType: (_b = input.ContentType) !== null && _b !== void 0 ? _b : 'application/octet-stream' }))];\n case 1:\n headers = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), assignStringVariables({ 'content-md5': input.ContentMD5 })]);\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n return [2 /*return*/, {\n method: 'PUT',\n headers: headers,\n url: url,\n body: input.Body,\n }];\n }\n });\n}); };\nvar putObjectDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [2 /*return*/, __assign(__assign({}, map(response.headers, {\n ETag: 'etag',\n VersionId: 'x-amz-version-id',\n })), { $metadata: parseMetadata(response) })];\n }\n });\n}); };\nexport var putObject = composeServiceApi(s3TransferHandler, putObjectSerializer, putObjectDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { map, parseXmlBody, parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, } from './utils';\nvar createMultipartUploadSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializeObjectConfigsToHeaders(input)];\n case 1:\n headers = _a.sent();\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = 'uploads';\n return [2 /*return*/, {\n method: 'POST',\n headers: headers,\n url: url,\n }];\n }\n });\n}); };\nvar createMultipartUploadDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, parsed, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseXmlBody(response)];\n case 3:\n parsed = _a.sent();\n contents = map(parsed, {\n UploadId: 'UploadId',\n });\n return [2 /*return*/, __assign({ $metadata: parseMetadata(response) }, contents)];\n }\n });\n}); };\nexport var createMultipartUpload = composeServiceApi(s3TransferHandler, createMultipartUploadSerializer, createMultipartUploadDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { assignStringVariables, map, parseXmlError, s3TransferHandler, serializeObjectSsecOptionsToHeaders, serializePathnameObjectKey, } from './utils';\nvar uploadPartSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, _a, url;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = [{}];\n return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1:\n headers = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b.sent())])), assignStringVariables({ 'content-md5': input.ContentMD5 })]);\n headers['content-type'] = 'application/octet-stream';\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new URLSearchParams({\n partNumber: input.PartNumber + '',\n uploadId: input.UploadId,\n }).toString();\n return [2 /*return*/, {\n method: 'PUT',\n headers: headers,\n url: url,\n body: input.Body,\n }];\n }\n });\n}); };\nvar uploadPartDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [2 /*return*/, __assign(__assign({}, map(response.headers, {\n ETag: 'etag',\n })), { $metadata: parseMetadata(response) })];\n }\n });\n}); };\nexport var uploadPart = composeServiceApi(s3TransferHandler, uploadPartSerializer, uploadPartDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { map, parseXmlBody, parseXmlError, s3TransferHandler, serializePathnameObjectKey, serializeObjectSsecOptionsToHeaders, } from './utils';\nvar INVALID_PARAMETER_ERROR_MSG = 'Invalid parameter for ComplteMultipartUpload API';\nvar completeMultipartUploadSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1:\n headers = _a.sent();\n headers['content-type'] = 'application/xml';\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new URLSearchParams({ uploadId: input.UploadId }).toString();\n return [2 /*return*/, {\n method: 'POST',\n headers: headers,\n url: url,\n body: '' +\n serializeCompletedMultipartUpload(input.MultipartUpload),\n }];\n }\n });\n}); };\nvar serializeCompletedMultipartUpload = function (input) {\n var _a;\n if (!((_a = input.Parts) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(\"\".concat(INVALID_PARAMETER_ERROR_MSG, \": \").concat(input));\n }\n return \"\".concat(input.Parts.map(serializeCompletedPartList).join(''), \"\");\n};\nvar serializeCompletedPartList = function (input) {\n if (!input.ETag || input.PartNumber == null) {\n throw new Error(\"\".concat(INVALID_PARAMETER_ERROR_MSG, \": \").concat(input));\n }\n return \"\".concat(input.ETag, \"\").concat(input.PartNumber, \"\");\n};\n/**\n * Parse CompleteMultipartUpload API response payload, which may be empty or error indicating internal\n * server error, even when the status code is 200.\n *\n * Ref: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html#API_CompleteMultipartUpload_Example_4\n */\nvar parseXmlBodyOrThrow = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var parsed, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, parseXmlBody(response)];\n case 1:\n parsed = _a.sent();\n if (!(parsed.Code !== undefined && parsed.Message !== undefined)) return [3 /*break*/, 3];\n return [4 /*yield*/, parseXmlError(__assign(__assign({}, response), { statusCode: 500 }))];\n case 2:\n error = _a.sent();\n error.$metadata.httpStatusCode = response.statusCode;\n throw error;\n case 3: return [2 /*return*/, parsed];\n }\n });\n}); };\nvar completeMultipartUploadDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, parsed, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseXmlBodyOrThrow(response)];\n case 3:\n parsed = _a.sent();\n contents = map(parsed, {\n ETag: 'ETag',\n Key: 'Key',\n Location: 'Location',\n });\n return [2 /*return*/, __assign({ $metadata: parseMetadata(response) }, contents)];\n }\n });\n}); };\n// CompleteMultiPartUpload API returns 200 status code with empty body or error message.\n// This indicates internal server error after the response has been sent to the client.\n// Ref: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html#API_CompleteMultipartUpload_Example_4\nvar retryWhenErrorWith200StatusCode = function (response, error) { return __awaiter(void 0, void 0, void 0, function () {\n var parsed, defaultRetryDecider;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode === 200)) return [3 /*break*/, 2];\n if (!response.body) {\n return [2 /*return*/, true];\n }\n return [4 /*yield*/, parseXmlBody(response)];\n case 1:\n parsed = _a.sent();\n if (parsed.Code !== undefined && parsed.Message !== undefined) {\n return [2 /*return*/, true];\n }\n return [2 /*return*/, false];\n case 2:\n defaultRetryDecider = defaultConfig.retryDecider;\n return [2 /*return*/, defaultRetryDecider(response, error)];\n }\n });\n}); };\nexport var completeMultipartUpload = composeServiceApi(s3TransferHandler, completeMultipartUploadSerializer, completeMultipartUploadDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text', retryDecider: retryWhenErrorWith200StatusCode }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { parseXmlError, s3TransferHandler, serializePathnameObjectKey, } from './utils';\nvar abortMultipartUploadSerializer = function (input, endpoint) {\n var url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new URLSearchParams({\n uploadId: input.UploadId,\n }).toString();\n return {\n method: 'DELETE',\n headers: {},\n url: url,\n };\n};\nvar abortMultipartUploadDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [2 /*return*/, {\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\nexport var abortMultipartUpload = composeServiceApi(s3TransferHandler, abortMultipartUploadSerializer, abortMultipartUploadDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { defaultConfig } from './base';\nimport { emptyArrayGuard, serializeObjectSsecOptionsToHeaders, map, parseXmlBody, parseXmlError, s3TransferHandler, deserializeNumber, serializePathnameObjectKey, } from './utils';\nvar listPartsSerializer = function (input, endpoint) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializeObjectSsecOptionsToHeaders(input)];\n case 1:\n headers = _a.sent();\n url = new URL(endpoint.url.toString());\n url.pathname = serializePathnameObjectKey(url, input.Key);\n url.search = new URLSearchParams({\n uploadId: input.UploadId,\n }).toString();\n return [2 /*return*/, {\n method: 'GET',\n headers: headers,\n url: url,\n }];\n }\n });\n}); };\nvar listPartsDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, parsed, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseXmlError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseXmlBody(response)];\n case 3:\n parsed = _a.sent();\n contents = map(parsed, {\n UploadId: 'UploadId',\n Parts: [\n 'Part',\n function (value) { return emptyArrayGuard(value, deserializeCompletedPartList); },\n ],\n });\n return [2 /*return*/, __assign({ $metadata: parseMetadata(response) }, contents)];\n }\n });\n}); };\nvar deserializeCompletedPartList = function (input) {\n return input.map(function (item) {\n return map(item, {\n PartNumber: ['PartNumber', deserializeNumber],\n ETag: 'ETag',\n Size: ['Size', deserializeNumber],\n });\n });\n};\nexport var listParts = composeServiceApi(s3TransferHandler, listPartsSerializer, listPartsDeserializer, __assign(__assign({}, defaultConfig), { responseType: 'text' }));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Md5 } from '@aws-sdk/md5-js';\nimport { toBase64 } from '../AwsClients/S3/utils';\nexport var calculateContentMd5 = function (content) { return __awaiter(void 0, void 0, void 0, function () {\n var hasher, buffer, digest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hasher = new Md5();\n if (!(typeof content === 'string')) return [3 /*break*/, 1];\n hasher.update(content);\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, readFile(content)];\n case 2:\n buffer = _a.sent();\n hasher.update(buffer);\n _a.label = 3;\n case 3: return [4 /*yield*/, hasher.digest()];\n case 4:\n digest = _a.sent();\n return [2 /*return*/, toBase64(digest)];\n }\n });\n}); };\nvar readFile = function (file) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n if (reader.result) {\n resolve(reader.result);\n }\n reader.onabort = function () { return reject(new Error('Read aborted')); };\n reader.onerror = function () { return reject(reader.error); };\n };\n if (file !== undefined)\n reader.readAsArrayBuffer(file);\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger, StorageAction } from '@aws-amplify/core';\nimport { putObject, createMultipartUpload, uploadPart, completeMultipartUpload, abortMultipartUpload, listParts, } from '../AwsClients/S3';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, } from '../AwsClients/S3/utils';\nimport { EventEmitter } from 'events';\nimport { calculateContentMd5 } from '../common/MD5utils';\nimport { calculatePartSize, DEFAULT_PART_SIZE, DEFAULT_QUEUE_SIZE, MAX_OBJECT_SIZE, loadS3Config, getPrefix, credentialsProvider, } from '../common/S3ClientUtils';\nvar logger = new Logger('AWSS3ProviderManagedUpload');\nvar AWSS3ProviderManagedUpload = /** @class */ (function () {\n function AWSS3ProviderManagedUpload(params, opts, emitter) {\n this.opts = null;\n this.completedParts = [];\n this.partSize = DEFAULT_PART_SIZE;\n // Progress reporting\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n this.emitter = null;\n this.params = params;\n this.opts = __assign({ isObjectLockEnabled: false }, opts);\n this.emitter = emitter;\n this.s3Config = loadS3Config(__assign(__assign({}, opts), { emitter: emitter, storageAction: StorageAction.Put }));\n }\n AWSS3ProviderManagedUpload.prototype.upload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var isObjectLockEnabled, _a, _b, _c, _d, _e, numberOfPartsToUpload, parts, start, error_1;\n var _f;\n var _this = this;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _g.trys.push([0, 12, , 14]);\n isObjectLockEnabled = this.opts.isObjectLockEnabled;\n if (!(isObjectLockEnabled === true)) return [3 /*break*/, 2];\n _a = this.params;\n return [4 /*yield*/, calculateContentMd5(\n // @ts-expect-error currently ReadableStream is not being supported in put api\n this.params.Body)];\n case 1:\n _a.ContentMD5 = _g.sent();\n _g.label = 2;\n case 2:\n this.body = this.validateAndSanitizeBody(this.params.Body);\n this.totalBytesToUpload = this.byteLength(this.body);\n if (!(this.totalBytesToUpload <= DEFAULT_PART_SIZE)) return [3 /*break*/, 4];\n // Multipart upload is not required. Upload the sanitized body as is\n this.params.Body = this.body;\n _b = putObject;\n _c = [this.s3Config];\n _d = [__assign({}, this.params)];\n _f = {};\n return [4 /*yield*/, this.getObjectKeyWithPrefix(this.params.Key)];\n case 3: return [2 /*return*/, _b.apply(void 0, _c.concat([__assign.apply(void 0, _d.concat([(_f.Key = _g.sent(), _f)]))]))];\n case 4:\n // Step 1: Determine appropriate part size.\n this.partSize = calculatePartSize(this.totalBytesToUpload);\n // Step 2: Initiate the multi part upload\n _e = this;\n return [4 /*yield*/, this.createMultiPartUpload()];\n case 5:\n // Step 2: Initiate the multi part upload\n _e.uploadId = _g.sent();\n numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.partSize);\n parts = this.createParts();\n start = 0;\n _g.label = 6;\n case 6:\n if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 9];\n // Upload as many as `queueSize` parts simultaneously\n return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + DEFAULT_QUEUE_SIZE))];\n case 7:\n // Upload as many as `queueSize` parts simultaneously\n _g.sent();\n _g.label = 8;\n case 8:\n start += DEFAULT_QUEUE_SIZE;\n return [3 /*break*/, 6];\n case 9:\n parts.map(function (part) {\n _this.removeEventListener(part);\n });\n return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];\n case 10: \n // Step 3: Finalize the upload such that S3 can recreate the file\n return [2 /*return*/, _g.sent()];\n case 11: return [3 /*break*/, 14];\n case 12:\n error_1 = _g.sent();\n // if any error is thrown, call cleanup\n return [4 /*yield*/, this.cleanup(this.uploadId)];\n case 13:\n // if any error is thrown, call cleanup\n _g.sent();\n logger.error('Error. Cancelling the multipart upload.');\n throw error_1;\n case 14: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.createParts = function () {\n try {\n var parts = [];\n for (var bodyStart = 0; bodyStart < this.totalBytesToUpload;) {\n var bodyEnd = Math.min(bodyStart + this.partSize, this.totalBytesToUpload);\n parts.push({\n bodyPart: this.body.slice(bodyStart, bodyEnd),\n partNumber: parts.length + 1,\n emitter: new EventEmitter(),\n _lastUploadedBytes: 0,\n });\n bodyStart += this.partSize;\n }\n return parts;\n }\n catch (error) {\n logger.error(error);\n throw error;\n }\n };\n AWSS3ProviderManagedUpload.prototype.createMultiPartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var response, _a, _b, _c, error_2;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 3, , 4]);\n _a = createMultipartUpload;\n _b = [this.s3Config];\n _c = [__assign({}, this.params)];\n _d = {};\n return [4 /*yield*/, this.getObjectKeyWithPrefix(this.params.Key)];\n case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([__assign.apply(void 0, _c.concat([(_d.Key = _e.sent(), _d)]))]))];\n case 2:\n response = _e.sent();\n logger.debug(response.UploadId);\n return [2 /*return*/, response.UploadId];\n case 3:\n error_2 = _e.sent();\n logger.error(error_2);\n throw error_2;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @private Not to be extended outside of tests\n * @VisibleFotTesting\n */\n AWSS3ProviderManagedUpload.prototype.uploadParts = function (uploadId, parts) {\n return __awaiter(this, void 0, void 0, function () {\n var allResults, i, error_3;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Promise.all(parts.map(function (part) { return __awaiter(_this, void 0, void 0, function () {\n var isObjectLockEnabled, _a, _b, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, ContentMD5, res, _c, _d;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n this.setupEventListener(part);\n isObjectLockEnabled = this.opts.isObjectLockEnabled;\n if (!isObjectLockEnabled) return [3 /*break*/, 2];\n _a = this.params;\n return [4 /*yield*/, calculateContentMd5(part.bodyPart)];\n case 1:\n _a.ContentMD5 = _f.sent();\n _f.label = 2;\n case 2:\n _b = this.params, Key = _b.Key, Bucket = _b.Bucket, SSECustomerAlgorithm = _b.SSECustomerAlgorithm, SSECustomerKey = _b.SSECustomerKey, SSECustomerKeyMD5 = _b.SSECustomerKeyMD5, ContentMD5 = _b.ContentMD5;\n _c = uploadPart;\n _d = [__assign(__assign({}, this.s3Config), { emitter: part.emitter })];\n _e = {\n PartNumber: part.partNumber,\n Body: part.bodyPart,\n UploadId: uploadId\n };\n return [4 /*yield*/, this.getObjectKeyWithPrefix(this.params.Key)];\n case 3: return [4 /*yield*/, _c.apply(void 0, _d.concat([(_e.Key = _f.sent(),\n _e.Bucket = Bucket,\n _e.SSECustomerAlgorithm = SSECustomerAlgorithm,\n _e.SSECustomerKey = SSECustomerKey,\n _e.SSECustomerKeyMD5 = SSECustomerKeyMD5,\n _e.ContentMD5 = ContentMD5,\n _e)]))];\n case 4:\n res = _f.sent();\n return [2 /*return*/, res];\n }\n });\n }); }))];\n case 1:\n allResults = _a.sent();\n // The order of resolved promises is the same as input promise order.\n for (i = 0; i < allResults.length; i++) {\n this.completedParts.push({\n PartNumber: parts[i].partNumber,\n ETag: allResults[i].ETag,\n });\n }\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.error('Error happened while uploading a part. Cancelling the multipart upload');\n throw error_3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.finishMultiPartUpload = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, Key, error_4;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n Bucket: this.params.Bucket\n };\n return [4 /*yield*/, this.getObjectKeyWithPrefix(this.params.Key)];\n case 1:\n input = (_a.Key = _b.sent(),\n _a.UploadId = uploadId,\n _a.MultipartUpload = { Parts: this.completedParts },\n _a);\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, completeMultipartUpload(this.s3Config, input)];\n case 3:\n Key = (_b.sent()).Key;\n return [2 /*return*/, Key];\n case 4:\n error_4 = _b.sent();\n logger.error('Error happened while finishing the upload.');\n throw error_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.cleanup = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, data;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // Reset this's state\n this.body = null;\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n if (!uploadId) {\n // This is a single part upload;\n return [2 /*return*/];\n }\n _a = {\n Bucket: this.params.Bucket\n };\n return [4 /*yield*/, this.getObjectKeyWithPrefix(this.params.Key)];\n case 1:\n input = (_a.Key = _b.sent(),\n _a.UploadId = uploadId,\n _a);\n return [4 /*yield*/, abortMultipartUpload(this.s3Config, input)];\n case 2:\n _b.sent();\n return [4 /*yield*/, listParts(this.s3Config, input)];\n case 3:\n data = _b.sent();\n if (data && data.Parts && data.Parts.length > 0) {\n throw new Error('Multipart upload clean up failed.');\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.removeEventListener = function (part) {\n part.emitter.removeAllListeners(SEND_UPLOAD_PROGRESS_EVENT);\n part.emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n };\n AWSS3ProviderManagedUpload.prototype.setupEventListener = function (part) {\n var _this = this;\n part.emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n _this.progressChanged(part.partNumber, progress.loaded - part._lastUploadedBytes);\n part._lastUploadedBytes = progress.loaded;\n });\n };\n AWSS3ProviderManagedUpload.prototype.progressChanged = function (partNumber, incrementalUpdate) {\n this.bytesUploaded += incrementalUpdate;\n this.emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, {\n loaded: this.bytesUploaded,\n total: this.totalBytesToUpload,\n part: partNumber,\n key: this.params.Key,\n });\n };\n AWSS3ProviderManagedUpload.prototype.byteLength = function (input) {\n if (input === null || input === undefined)\n return 0;\n if (typeof input.byteLength === 'number') {\n return input.byteLength;\n }\n else if (typeof input.length === 'number') {\n return input.length;\n }\n else if (typeof input.size === 'number') {\n return input.size;\n }\n else if (typeof input.path === 'string') {\n /* NodeJs Support\n return require('fs').lstatSync(input.path).size;\n */\n }\n else {\n throw new Error('Cannot determine length of ' + input);\n }\n };\n AWSS3ProviderManagedUpload.prototype.validateAndSanitizeBody = function (body) {\n var sanitizedBody = this.isGenericObject(body)\n ? JSON.stringify(body)\n : body;\n /* TODO: streams and files for nodejs\n if (\n typeof body.path === 'string' &&\n require('fs').lstatSync(body.path).size > 0\n ) {\n sanitizedBody = body;\n } */\n if (this.byteLength(sanitizedBody) > MAX_OBJECT_SIZE) {\n throw new Error(\"File size bigger than S3 Object limit of 5TB, got \".concat(this.totalBytesToUpload, \" Bytes\"));\n }\n return sanitizedBody;\n };\n AWSS3ProviderManagedUpload.prototype.isGenericObject = function (body) {\n if (body !== null && typeof body === 'object') {\n try {\n return !(this.byteLength(body) >= 0);\n }\n catch (error) {\n // If we cannot determine the length of the body, consider it\n // as a generic object and upload a stringified version of it\n return true;\n }\n }\n return false;\n };\n AWSS3ProviderManagedUpload.prototype.getObjectKeyWithPrefix = function (keyWithoutPrefix) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = getPrefix;\n _b = [__assign({}, this.opts)];\n _c = {};\n return [4 /*yield*/, credentialsProvider()];\n case 1: return [4 /*yield*/, _a.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.credentials = _d.sent(), _c)]))])];\n case 2: return [2 /*return*/, ((_d.sent()) + keyWithoutPrefix)];\n }\n });\n });\n };\n return AWSS3ProviderManagedUpload;\n}());\nexport { AWSS3ProviderManagedUpload };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger, Credentials, StorageHelper, Hub, parseAWSExports, StorageAction, } from '@aws-amplify/core';\nimport { copyObject, getObject, getPresignedGetObjectUrl, headObject, deleteObject, listObjectsV2, SERVICE_NAME as S3_SERVICE_NAME, } from '../AwsClients/S3';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, } from '../AwsClients/S3/utils';\nimport { StorageErrorStrings } from '../common/StorageErrorStrings';\nimport { dispatchStorageEvent } from '../common/StorageUtils';\nimport { getPrefix, loadS3Config, } from '../common/S3ClientUtils';\nimport { AWSS3ProviderManagedUpload } from './AWSS3ProviderManagedUpload';\nimport { AWSS3UploadTask, TaskEvents } from './AWSS3UploadTask';\nimport { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';\nimport * as events from 'events';\nvar logger = new Logger('AWSS3Provider');\nvar DEFAULT_STORAGE_LEVEL = 'public';\nvar DEFAULT_PRESIGN_EXPIRATION = 900;\n/**\n * Provide storage methods to use AWS S3\n */\nexport var AWSS3Provider = /** @class */ (function () {\n /**\n * Initialize Storage with AWS configurations\n * @param {Object} config - Configuration object for storage\n */\n function AWSS3Provider(config) {\n var _this = this;\n this._config = config ? config : {};\n this._storage = new StorageHelper().getStorage();\n Hub.listen('auth', function (data) {\n var payload = data.payload;\n if (payload.event === 'signOut' || payload.event === 'signIn') {\n _this._storage.removeItem(UPLOADS_STORAGE_KEY);\n }\n });\n logger.debug('Storage Options', this._config);\n }\n /**\n * get the category of the plugin\n */\n AWSS3Provider.prototype.getCategory = function () {\n return AWSS3Provider.CATEGORY;\n };\n /**\n * get provider name of the plugin\n */\n AWSS3Provider.prototype.getProviderName = function () {\n return AWSS3Provider.PROVIDER_NAME;\n };\n /**\n * Configure Storage part with aws configuration\n * @param {Object} config - Configuration of the Storage\n * @return {Object} - Current configuration\n */\n AWSS3Provider.prototype.configure = function (config) {\n logger.debug('configure Storage', config);\n if (!config)\n return this._config;\n var amplifyConfig = parseAWSExports(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Storage);\n if (!this._config.bucket) {\n logger.debug('Do not have bucket yet');\n }\n return this._config;\n };\n AWSS3Provider.prototype.startResumableUpload = function (addTaskInput, config) {\n var _a;\n var s3Config = addTaskInput.s3Config, emitter = addTaskInput.emitter, key = addTaskInput.key, file = addTaskInput.file, params = addTaskInput.params;\n var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, track = (_a = config.track, _a === void 0 ? false : _a);\n if (!(file instanceof Blob)) {\n throw new Error(StorageErrorStrings.INVALID_BLOB);\n }\n emitter.on(TaskEvents.UPLOAD_PROGRESS, function (event) {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n progressCallback(event);\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n });\n emitter.on(TaskEvents.UPLOAD_COMPLETE, function (event) {\n if (completeCallback) {\n if (typeof completeCallback === 'function') {\n completeCallback(event);\n }\n else {\n logger.warn('completeCallback should be a function, not a ' +\n typeof completeCallback);\n }\n }\n });\n emitter.on(TaskEvents.ERROR, function (err) {\n if (errorCallback) {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n else {\n logger.warn('errorCallback should be a function, not a ' + typeof errorCallback);\n }\n }\n });\n // we want to keep this function sync so we defer this promise to AWSS3UploadTask to resolve when it's needed\n // when its doing a final check with _listSingleFile function\n var prefixPromise = Credentials.get().then(function (credentials) {\n var cred = Credentials.shear(credentials);\n return getPrefix(__assign(__assign({}, config), { level: addTaskInput.accessLevel, credentials: cred }));\n });\n var task = new AWSS3UploadTask({\n s3Config: s3Config,\n file: file,\n emitter: emitter,\n level: addTaskInput.accessLevel,\n storage: this._storage,\n params: params,\n prefixPromise: prefixPromise,\n });\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload Task created successfully for \".concat(key));\n // automatically start the upload task\n task.resume();\n return task;\n };\n /**\n * Copy an object from a source object to a new object within the same bucket. Can optionally copy files across\n * different level or identityId (if source object's level is 'protected').\n *\n * @async\n * @param {S3CopySource} src - Key and optionally access level and identityId of the source object.\n * @param {S3CopyDestination} dest - Key and optionally access level of the destination object.\n * @param {S3ProviderCopyConfig} [config] - Optional configuration for s3 commands.\n * @return {Promise} The key of the copied object.\n */\n AWSS3Provider.prototype.copy = function (src, dest, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, acl, bucket, cacheControl, expires, track, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, srcLevel, srcIdentityId, srcKey, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, error_1;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _c.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n acl = opt.acl, bucket = opt.bucket, cacheControl = opt.cacheControl, expires = opt.expires, track = opt.track, serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n srcLevel = (_a = src.level, _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a), srcIdentityId = src.identityId, srcKey = src.key;\n destLevel = (_b = dest.level, _b === void 0 ? DEFAULT_STORAGE_LEVEL : _b), destKey = dest.key;\n if (!srcKey || typeof srcKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_SRC_KEY);\n }\n if (!destKey || typeof destKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_DEST_KEY);\n }\n if (srcLevel !== 'protected' && srcIdentityId) {\n logger.warn(\"You may copy files from another user if the source level is \\\"protected\\\", currently it's \".concat(srcLevel));\n }\n srcPrefix = this._prefix(__assign(__assign(__assign({}, opt), { level: srcLevel }), (srcIdentityId && { identityId: srcIdentityId })));\n destPrefix = this._prefix(__assign(__assign({}, opt), { level: destLevel }));\n finalSrcKey = \"\".concat(bucket, \"/\").concat(srcPrefix).concat(srcKey);\n finalDestKey = \"\".concat(destPrefix).concat(destKey);\n logger.debug(\"copying \".concat(finalSrcKey, \" to \").concat(finalDestKey));\n params = {\n Bucket: bucket,\n CopySource: finalSrcKey,\n Key: finalDestKey,\n // Copies over metadata like contentType as well\n MetadataDirective: 'COPY',\n };\n if (cacheControl)\n params.CacheControl = cacheControl;\n if (expires)\n params.Expires = expires;\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n if (acl)\n params.ACL = acl;\n _c.label = 2;\n case 2:\n _c.trys.push([2, 4, , 5]);\n return [4 /*yield*/, copyObject(loadS3Config(__assign(__assign({}, opt), { storageAction: StorageAction.Copy })), params)];\n case 3:\n _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'success',\n }, null, \"Copy success from \".concat(srcKey, \" to \").concat(destKey));\n return [2 /*return*/, {\n key: destKey,\n }];\n case 4:\n error_1 = _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'failed',\n }, null, \"Copy failed from \".concat(srcKey, \" to \").concat(destKey));\n throw error_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype.get = function (key, config) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, download, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, expires, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, progressCallback, validateObjectExistence, prefix, final_key, emitter, s3Config, params, response, error_2, error_3, url, _b, _c, error_4;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _f.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, download = opt.download, cacheControl = opt.cacheControl, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, contentLanguage = opt.contentLanguage, contentType = opt.contentType, expires = opt.expires, track = opt.track, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, progressCallback = opt.progressCallback, validateObjectExistence = (_d = opt.validateObjectExistence, _d === void 0 ? false : _d);\n prefix = this._prefix(opt);\n final_key = prefix + key;\n emitter = new events.EventEmitter();\n s3Config = loadS3Config(__assign(__assign({}, opt), { emitter: emitter, storageAction: StorageAction.Get }));\n logger.debug('get ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property\n if (cacheControl)\n params.ResponseCacheControl = cacheControl;\n if (contentDisposition)\n params.ResponseContentDisposition = contentDisposition;\n if (contentEncoding)\n params.ResponseContentEncoding = contentEncoding;\n if (contentLanguage)\n params.ResponseContentLanguage = contentLanguage;\n if (contentType)\n params.ResponseContentType = contentType;\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (!(download === true)) return [3 /*break*/, 5];\n _f.label = 2;\n case 2:\n _f.trys.push([2, 4, , 5]);\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_DOWNLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return [4 /*yield*/, getObject(s3Config, params)];\n case 3:\n response = _f.sent();\n emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n dispatchStorageEvent(track, 'download', { method: 'get', result: 'success' }, {\n fileSize: Number(response.Body['size'] || response.Body['length']),\n }, \"Download success for \".concat(key));\n return [2 /*return*/, response];\n case 4:\n error_2 = _f.sent();\n dispatchStorageEvent(track, 'download', {\n method: 'get',\n result: 'failed',\n }, null, \"Download failed with \".concat(error_2.message));\n throw error_2;\n case 5:\n if (!validateObjectExistence) return [3 /*break*/, 9];\n _f.label = 6;\n case 6:\n _f.trys.push([6, 8, , 9]);\n return [4 /*yield*/, headObject(s3Config, params)];\n case 7:\n _f.sent();\n return [3 /*break*/, 9];\n case 8:\n error_3 = _f.sent();\n if (((_a = error_3.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 404) {\n dispatchStorageEvent(track, 'getSignedUrl', {\n method: 'get',\n result: 'failed',\n }, null, \"\".concat(key, \" not found\"));\n }\n throw error_3;\n case 9:\n _f.trys.push([9, 12, , 13]);\n _b = getPresignedGetObjectUrl;\n _c = [__assign({}, s3Config)];\n _e = { expiration: expires || DEFAULT_PRESIGN_EXPIRATION };\n return [4 /*yield*/, s3Config.credentials()];\n case 10: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.credentials = _f.sent(), _e.signingRegion = s3Config.region, _e.signingService = S3_SERVICE_NAME, _e)])), params])];\n case 11:\n url = _f.sent();\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, \"Signed URL: \".concat(url));\n return [2 /*return*/, url];\n case 12:\n error_4 = _f.sent();\n logger.warn('get signed url error', error_4);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'failed' }, null, \"Could not get a signed URL for \".concat(key));\n throw error_4;\n case 13: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get Properties of the object\n *\n * @param {string} key - key of the object\n * @param {S3ProviderGetPropertiesConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - A promise resolves to contentType,\n * contentLength, eTag, lastModified, metadata\n */\n AWSS3Provider.prototype.getProperties = function (key, config) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, prefix, final_key, s3Config, params, response, getPropertiesResponse, error_5;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _c.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = (_b = opt.track, _b === void 0 ? false : _b), SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n logger.debug(\"getProperties \".concat(key, \" from \").concat(final_key));\n s3Config = loadS3Config(__assign(__assign({}, opt), { storageAction: StorageAction.GetProperties }));\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n _c.label = 2;\n case 2:\n _c.trys.push([2, 4, , 5]);\n return [4 /*yield*/, headObject(s3Config, params)];\n case 3:\n response = _c.sent();\n getPropertiesResponse = {\n contentLength: response.ContentLength,\n contentType: response.ContentType,\n eTag: response.ETag,\n lastModified: response.LastModified,\n metadata: response.Metadata,\n };\n dispatchStorageEvent(track, 'getProperties', { method: 'getProperties', result: 'success' }, null, \"getProperties successful for \".concat(key));\n return [2 /*return*/, getPropertiesResponse];\n case 4:\n error_5 = _c.sent();\n if (((_a = error_5.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 404) {\n dispatchStorageEvent(track, 'getProperties', {\n method: 'getProperties',\n result: 'failed',\n }, null, \"\".concat(key, \" not found\"));\n }\n throw error_5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Put a file in S3 bucket specified to configure method\n * @param key - key of the object\n * @param object - File to be put in Amazon S3 bucket\n * @param [config] - Optional configuration for the underlying S3 command\n * @return an instance of AWSS3UploadTask or a promise that resolves to an object with the new object's key on\n * success.\n */\n AWSS3Provider.prototype.put = function (key, object, config) {\n var opt = Object.assign({}, this._config, config);\n var bucket = opt.bucket, track = opt.track, progressCallback = opt.progressCallback, level = opt.level, resumable = opt.resumable;\n var contentType = opt.contentType, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, cacheControl = opt.cacheControl, expires = opt.expires, metadata = opt.metadata, tagging = opt.tagging, acl = opt.acl;\n var serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n var type = contentType ? contentType : 'binary/octet-stream';\n var params = {\n Bucket: bucket,\n Key: key,\n Body: object,\n ContentType: type,\n };\n if (cacheControl) {\n params.CacheControl = cacheControl;\n }\n if (contentDisposition) {\n params.ContentDisposition = contentDisposition;\n }\n if (contentEncoding) {\n params.ContentEncoding = contentEncoding;\n }\n if (expires) {\n params.Expires = expires;\n }\n if (metadata) {\n params.Metadata = metadata;\n }\n if (tagging) {\n params.Tagging = tagging;\n }\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n var emitter = new events.EventEmitter();\n var uploader = new AWSS3ProviderManagedUpload(params, opt, emitter);\n if (acl) {\n params.ACL = acl;\n }\n if (resumable === true) {\n var s3Config = loadS3Config(__assign(__assign({}, opt), { storageAction: StorageAction.Put }));\n var addTaskInput = {\n bucket: bucket,\n key: key,\n s3Config: s3Config,\n file: object,\n emitter: emitter,\n accessLevel: level,\n params: params,\n };\n // explicitly asserting the type here as Typescript could not infer that resumable is of type true\n return this.startResumableUpload(addTaskInput, config);\n }\n try {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return uploader.upload().then(function (response) {\n logger.debug('upload result', response);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload success for \".concat(key));\n return { key: key };\n });\n }\n catch (error) {\n logger.warn('error uploading', error);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'failed' }, null, \"Error uploading \".concat(key));\n throw error;\n }\n };\n /**\n * Remove the object for specified key\n * @param {string} key - key of the object\n * @param {S3ProviderRemoveConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves upon successful removal of the object\n */\n AWSS3Provider.prototype.remove = function (key, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, prefix, final_key, params, s3Config, response, error_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n logger.debug('remove ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n s3Config = loadS3Config(__assign(__assign({}, opt), { storageAction: StorageAction.Remove }));\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, deleteObject(s3Config, params)];\n case 3:\n response = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'success' }, null, \"Deleted \".concat(key, \" successfully\"));\n return [2 /*return*/, response];\n case 4:\n error_6 = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'failed' }, null, \"Deletion of \".concat(key, \" failed with \").concat(error_6));\n throw error_6;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._list = function (params, opt, prefix) {\n return __awaiter(this, void 0, void 0, function () {\n var list, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n list = {\n results: [],\n hasNextToken: false,\n };\n return [4 /*yield*/, listObjectsV2(loadS3Config(__assign(__assign({}, opt), { storageAction: StorageAction.List })), __assign({}, params))];\n case 1:\n response = _a.sent();\n if (response && response.Contents) {\n list.results = response.Contents.map(function (item) {\n return {\n key: item.Key.substr(prefix.length),\n eTag: item.ETag,\n lastModified: item.LastModified,\n size: item.Size,\n };\n });\n list.nextToken = response.NextContinuationToken;\n list.hasNextToken = response.IsTruncated;\n }\n return [2 /*return*/, list];\n }\n });\n });\n };\n /**\n * List bucket objects relative to the level and prefix specified\n * @param {string} path - the path that contains objects\n * @param {S3ProviderListConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves to list of keys, eTags, lastModified\n * and file size for all objects in path\n */\n AWSS3Provider.prototype.list = function (path, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, pageSize, nextToken, prefix, final_path, list, MAX_PAGE_SIZE, listResult, params, error_7;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _c.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track, pageSize = opt.pageSize, nextToken = opt.nextToken;\n prefix = this._prefix(opt);\n final_path = prefix + path;\n logger.debug('list ' + path + ' from ' + final_path);\n _c.label = 2;\n case 2:\n _c.trys.push([2, 10, , 11]);\n list = {\n results: [],\n hasNextToken: false,\n };\n MAX_PAGE_SIZE = 1000;\n listResult = void 0;\n params = {\n Bucket: bucket,\n Prefix: final_path,\n MaxKeys: MAX_PAGE_SIZE,\n ContinuationToken: nextToken,\n };\n params.ContinuationToken = nextToken;\n if (!(pageSize === 'ALL')) return [3 /*break*/, 7];\n _c.label = 3;\n case 3: return [4 /*yield*/, this._list(params, opt, prefix)];\n case 4:\n listResult = _c.sent();\n (_a = list.results).push.apply(_a, __spreadArray([], __read(listResult.results), false));\n if (listResult.nextToken)\n params.ContinuationToken = listResult.nextToken;\n _c.label = 5;\n case 5:\n if (listResult.nextToken) return [3 /*break*/, 3];\n _c.label = 6;\n case 6: return [3 /*break*/, 9];\n case 7:\n if (pageSize &&\n pageSize <= MAX_PAGE_SIZE &&\n typeof pageSize === 'number')\n params.MaxKeys = pageSize;\n else\n logger.warn(\"pageSize should be from 0 - \".concat(MAX_PAGE_SIZE, \".\"));\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 8:\n listResult = _c.sent();\n (_b = list.results).push.apply(_b, __spreadArray([], __read(listResult.results), false));\n list.hasNextToken = listResult.hasNextToken;\n list.nextToken = null !== null && null !== void 0 ? null : listResult.nextToken;\n _c.label = 9;\n case 9:\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, \"\".concat(list.results.length, \" items returned from list operation\"));\n logger.debug('list', list);\n return [2 /*return*/, list];\n case 10:\n error_7 = _c.sent();\n logger.error('list InvalidArgument', error_7);\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'failed' }, null, \"Listing items failed: \".concat(error_7.message));\n throw error_7;\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, cred, error_8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, false];\n cred = Credentials.shear(credentials);\n logger.debug('set credentials for storage', cred);\n this._config.credentials = cred;\n return [2 /*return*/, true];\n case 2:\n error_8 = _a.sent();\n logger.warn('ensure credentials error', error_8);\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._isWithCredentials = function (config) {\n return typeof config === 'object' && config.hasOwnProperty('credentials');\n };\n AWSS3Provider.prototype._prefix = function (config) {\n var credentials = config.credentials, level = config.level;\n var customPrefix = config.customPrefix || {};\n var identityId = config.identityId || credentials.identityId;\n var privatePath = (customPrefix.private !== undefined ? customPrefix.private : 'private/') +\n identityId +\n '/';\n var protectedPath = (customPrefix.protected !== undefined\n ? customPrefix.protected\n : 'protected/') +\n identityId +\n '/';\n var publicPath = customPrefix.public !== undefined ? customPrefix.public : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n };\n AWSS3Provider.CATEGORY = 'Storage';\n AWSS3Provider.PROVIDER_NAME = 'AWSS3';\n return AWSS3Provider;\n}());\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { Amplify, ConsoleLogger as Logger, parseAWSExports, } from '@aws-amplify/core';\nimport { AWSS3Provider } from './providers';\nimport { isCancelError } from './AwsClients/S3/utils';\nimport { AWSS3UploadTask } from './providers/AWSS3UploadTask';\nvar logger = new Logger('StorageClass');\nvar loggerStorageInstance = new Logger('Storage'); // Logging relating to Storage instance management\nvar DEFAULT_PROVIDER = 'AWSS3';\n/**\n * Provide storage methods to use AWS S3\n */\nvar Storage = /** @class */ (function () {\n /**\n * Initialize Storage\n * @param {Object} config - Configuration object for storage\n */\n function Storage() {\n this._config = {};\n this._pluggables = [];\n this._abortControllerMap = new WeakMap();\n logger.debug('Storage Options', this._config);\n this.get = this.get.bind(this);\n this.put = this.put.bind(this);\n this.remove = this.remove.bind(this);\n this.list = this.list.bind(this);\n }\n Storage.prototype.getModuleName = function () {\n return 'Storage';\n };\n /**\n * add plugin into Storage category\n * @param {Object} pluggable - an instance of the plugin\n */\n Storage.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Storage') {\n this._pluggables.push(pluggable);\n var config = {};\n config = pluggable.configure(this._config[pluggable.getProviderName()]);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.getPluggable = function (providerName) {\n var pluggable = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n return null;\n }\n else\n return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n return;\n };\n /**\n * Configure Storage\n * @param {Object} config - Configuration object for storage\n * @return {Object} - Current configuration\n */\n Storage.prototype.configure = function (config) {\n var _this = this;\n var _a;\n logger.debug('configure Storage');\n if (!config)\n return this._config;\n var amplifyConfig = parseAWSExports(config);\n var storageConfig = (_a = amplifyConfig.Storage) !== null && _a !== void 0 ? _a : {};\n var defaultProviderConfigKeys = [\n 'bucket',\n 'region',\n 'level',\n 'track',\n 'customPrefix',\n 'ContentMD5',\n 'serverSideEncryption',\n 'SSECustomerAlgorithm',\n 'SSECustomerKey',\n // TODO(AllanZhengYP): remove in V6.\n 'SSECustomerKeyMD5',\n 'SSEKMSKeyId',\n ];\n var hasDefaultProviderConfigKeys = function (config) {\n return Object.keys(config).find(function (key) { return defaultProviderConfigKeys.includes(key); });\n };\n if (hasDefaultProviderConfigKeys(storageConfig) &&\n !storageConfig[DEFAULT_PROVIDER]) {\n storageConfig[DEFAULT_PROVIDER] = {};\n }\n Object.entries(storageConfig).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (key &&\n defaultProviderConfigKeys.includes(key) &&\n value !== undefined) {\n storageConfig[DEFAULT_PROVIDER][key] = value;\n delete storageConfig[key];\n }\n });\n // only update new values for each provider\n Object.keys(storageConfig).forEach(function (providerName) {\n if (typeof storageConfig[providerName] !== 'string') {\n _this._config[providerName] = __assign(__assign({}, _this._config[providerName]), storageConfig[providerName]);\n }\n });\n this._pluggables.forEach(function (pluggable) {\n pluggable.configure(_this._config[pluggable.getProviderName()]);\n });\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSS3Provider());\n }\n return this._config;\n };\n Storage.prototype.getAbortController = function () {\n return new AbortController();\n };\n Storage.prototype.updateRequestToBeCancellable = function (request, abortController) {\n this._abortControllerMap.set(request, abortController);\n };\n Storage.prototype.isUploadTask = function (x) {\n return (typeof x !== 'undefined' &&\n typeof x['pause'] === 'function' &&\n typeof x['resume'] === 'function');\n };\n Storage.prototype.cancel = function (request, message) {\n if (request instanceof AWSS3UploadTask) {\n return request._cancel();\n }\n var abortController = this._abortControllerMap.get(request);\n if (abortController) {\n // TODO: [v6] clean up the aborted promise in the weak map.\n // Not doing it yet to avoid breaking changes when users may abort a request twice.\n abortController.abort(message);\n }\n else {\n logger.debug('The request does not map to any cancel token');\n }\n };\n Storage.prototype.copy = function (src, dest, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var abortController = this.getAbortController();\n if (typeof plugin.copy !== 'function') {\n return Promise.reject(\".copy is not implemented on provider \".concat(plugin.getProviderName()));\n }\n var responsePromise = plugin.copy(src, dest, __assign(__assign({}, config), { abortSignal: abortController.signal }));\n this.updateRequestToBeCancellable(responsePromise, abortController);\n return responsePromise;\n };\n Storage.prototype.get = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var abortController = this.getAbortController();\n var responsePromise = plugin.get(key, __assign(__assign({}, config), { abortSignal: abortController.signal }));\n this.updateRequestToBeCancellable(responsePromise, abortController);\n return responsePromise;\n };\n Storage.prototype.isCancelError = function (error) {\n return isCancelError(error);\n };\n Storage.prototype.getProperties = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n throw new Error('No plugin found with providerName');\n }\n var abortController = this.getAbortController();\n if (typeof plugin.getProperties !== 'function') {\n return Promise.reject(\".getProperties is not implemented on provider \".concat(plugin.getProviderName()));\n }\n var responsePromise = plugin === null || plugin === void 0 ? void 0 : plugin.getProperties(key, __assign({}, config));\n this.updateRequestToBeCancellable(responsePromise, abortController);\n return responsePromise;\n };\n Storage.prototype.put = function (key, object, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var abortController = this.getAbortController();\n var response = plugin.put(key, object, __assign(__assign({}, config), { abortSignal: abortController.signal }));\n if (!this.isUploadTask(response)) {\n this.updateRequestToBeCancellable(response, abortController);\n }\n return response;\n };\n Storage.prototype.remove = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return plugin.remove(key, config);\n };\n Storage.prototype.list = function (path, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var plugin = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (plugin === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return plugin.list(path, config);\n };\n return Storage;\n}());\nexport { Storage };\n/**\n * Configure & register Storage singleton instance.\n */\nvar _instance = null;\nvar getInstance = function () {\n if (_instance) {\n return _instance;\n }\n loggerStorageInstance.debug('Create Storage Instance, debug');\n _instance = new Storage();\n _instance.vault = new Storage();\n var old_configure = _instance.configure;\n _instance.configure = function (options) {\n loggerStorageInstance.debug('storage configure called');\n var vaultConfig = __assign({}, old_configure.call(_instance, options));\n // set level private for each provider for the vault\n Object.keys(vaultConfig).forEach(function (providerName) {\n if (typeof vaultConfig[providerName] !== 'string') {\n vaultConfig[providerName] = __assign(__assign({}, vaultConfig[providerName]), { level: 'private' });\n }\n });\n loggerStorageInstance.debug('storage vault configure called');\n _instance.vault.configure(vaultConfig);\n };\n return _instance;\n};\nexport var StorageInstance = getInstance();\nAmplify.register(StorageInstance);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n//# sourceMappingURL=MsWindow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFlBQVksR0FBd0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFeEQsUUFBQSxpQkFBaUIsR0FBZ0Q7SUFDNUUsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsb0JBQVk7Q0FDbkIsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDL0MsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEVBQUU7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0hBXzI1Nl9IQVNIOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH0gPSB7IG5hbWU6IFwiU0hBLTI1NlwiIH07XG5cbmV4cG9ydCBjb25zdCBTSEFfMjU2X0hNQUNfQUxHTzogeyBuYW1lOiBcIkhNQUNcIjsgaGFzaDogeyBuYW1lOiBcIlNIQS0yNTZcIiB9IH0gPSB7XG4gIG5hbWU6IFwiSE1BQ1wiLFxuICBoYXNoOiBTSEFfMjU2X0hBU0hcbn07XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9EQVRBX1NIQV8yNTYgPSBuZXcgVWludDhBcnJheShbXG4gIDIyNyxcbiAgMTc2LFxuICAxOTYsXG4gIDY2LFxuICAxNTIsXG4gIDI1MixcbiAgMjgsXG4gIDIwLFxuICAxNTQsXG4gIDI1MSxcbiAgMjQ0LFxuICAyMDAsXG4gIDE1MyxcbiAgMTExLFxuICAxODUsXG4gIDM2LFxuICAzOSxcbiAgMTc0LFxuICA2NSxcbiAgMjI4LFxuICAxMDAsXG4gIDE1NSxcbiAgMTQ3LFxuICA3NixcbiAgMTY0LFxuICAxNDksXG4gIDE1MyxcbiAgMjcsXG4gIDEyMCxcbiAgODIsXG4gIDE4NCxcbiAgODVcbl0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NQbGF0Zm9ybVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zc1BsYXRmb3JtU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFvRDtBQUNwRCxxREFBOEQ7QUFDOUQsbURBQTJEO0FBRTNELHVFQUFvRTtBQUNwRSw2REFBd0Q7QUFDeEQsa0VBQTJEO0FBRTNEO0lBR0UsZ0JBQVksTUFBbUI7UUFDN0IsSUFBSSxJQUFBLHVDQUFpQixFQUFDLElBQUEsaUNBQVksR0FBRSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUEsMkJBQVUsRUFBQyxJQUFBLGlDQUFZLEdBQUUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sSUFBZ0IsRUFBRSxRQUFzQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUFNLEdBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgSnNTaGEyNTYgfSBmcm9tIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBzdXBwb3J0c1dlYkNyeXB0byB9IGZyb20gXCJAYXdzLWNyeXB0by9zdXBwb3J0cy13ZWItY3J5cHRvXCI7XG5pbXBvcnQgeyBpc01zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNoOiBIYXNoO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc3VwcG9ydHNXZWJDcnlwdG8obG9jYXRlV2luZG93KCkpKSB7XG4gICAgICB0aGlzLmhhc2ggPSBuZXcgV2ViQ3J5cHRvU2hhMjU2KHNlY3JldCk7XG4gICAgfSBlbHNlIGlmIChpc01zV2luZG93KGxvY2F0ZVdpbmRvdygpKSkge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEllMTFTaGEyNTYoc2VjcmV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEpzU2hhMjU2KHNlY3JldCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKGRhdGE6IFNvdXJjZURhdGEsIGVuY29kaW5nPzogXCJ1dGY4XCIgfCBcImFzY2lpXCIgfCBcImxhdGluMVwiKTogdm9pZCB7XG4gICAgdGhpcy5oYXNoLnVwZGF0ZShkYXRhLCBlbmNvZGluZyk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWUxMVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pZTExU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1Qyx5Q0FBZ0Q7QUFFaEQsZ0VBQXNEO0FBRXRELGtFQUEyRDtBQUUzRDtJQUdFLGdCQUFZLE1BQW1CO1FBQzdCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsT0FBTztnQkFDakQsT0FBQyxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0MsNkJBQWlCLEVBQ2pCLE9BQU8sQ0FDUjtZQUhELENBR0MsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUM3QixJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUF6QixpQkFnQkM7UUFmQyxJQUFJLElBQUEseUJBQVcsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztZQUM1QyxTQUFTLENBQUMsT0FBTyxHQUFHO2dCQUNsQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzdCLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdDLENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBTSxHQUFOO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsVUFBQSxTQUFTO1lBQ1AsT0FBQSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHO29CQUNsQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLFVBQVUsR0FBRztvQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNwQixPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNDO29CQUNELE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBWkYsQ0FZRSxDQUNMLENBQUM7SUFDSixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2REQsSUF1REM7QUF2RFksd0JBQU07QUF5RG5CLFNBQVMsYUFBYSxDQUFDLE1BQWtCO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLFlBQVksR0FBSSxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxFQUNMLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUN6Qiw2QkFBaUIsRUFDakIsS0FBSyxFQUNMLENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUVGLFlBQVksQ0FBQyxVQUFVLEdBQUc7WUFDeEIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxHQUFHO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFnQjtJQUN6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUEsNEJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlEYXRhIH0gZnJvbSBcIi4vaXNFbXB0eURhdGFcIjtcbmltcG9ydCB7IFNIQV8yNTZfSE1BQ19BTEdPIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuaW1wb3J0IHsgQ3J5cHRvT3BlcmF0aW9uLCBLZXksIE1zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb246IFByb21pc2U8Q3J5cHRvT3BlcmF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBTb3VyY2VEYXRhKSB7XG4gICAgaWYgKHNlY3JldCkge1xuICAgICAgdGhpcy5vcGVyYXRpb24gPSBnZXRLZXlQcm9taXNlKHNlY3JldCkudGhlbihrZXlEYXRhID0+XG4gICAgICAgIChsb2NhdGVXaW5kb3coKSBhcyBNc1dpbmRvdykubXNDcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICAgICAgU0hBXzI1Nl9ITUFDX0FMR08sXG4gICAgICAgICAga2V5RGF0YVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5vcGVyYXRpb24uY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgKGxvY2F0ZVdpbmRvdygpIGFzIE1zV2luZG93KS5tc0NyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGlvbiA9IHRoaXMub3BlcmF0aW9uLnRoZW4ob3BlcmF0aW9uID0+IHtcbiAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIHVwZGF0aW5nIGhhc2hcIilcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvcGVyYXRpb24ucHJvY2Vzcyh0b0FycmF5QnVmZmVyVmlldyh0b0hhc2gpKTtcblxuICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICB9KTtcbiAgICB0aGlzLm9wZXJhdGlvbi5jYXRjaCgoKSA9PiB7fSk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLnRoZW48VWludDhBcnJheT4oXG4gICAgICBvcGVyYXRpb24gPT5cbiAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBvcGVyYXRpb24ub25jb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24ucmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobmV3IFVpbnQ4QXJyYXkob3BlcmF0aW9uLnJlc3VsdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG9wZXJhdGlvbi5maW5pc2goKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEtleVByb21pc2Uoc2VjcmV0OiBTb3VyY2VEYXRhKTogUHJvbWlzZTxLZXk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBrZXlPcGVyYXRpb24gPSAobG9jYXRlV2luZG93KCkgYXMgTXNXaW5kb3cpLm1zQ3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInJhd1wiLFxuICAgICAgdG9BcnJheUJ1ZmZlclZpZXcoc2VjcmV0KSxcbiAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIGtleU9wZXJhdGlvbi5vbmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGtleU9wZXJhdGlvbi5yZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShrZXlPcGVyYXRpb24ucmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkltcG9ydEtleSBjb21wbGV0ZWQgd2l0aG91dCBpbXBvcnRpbmcga2V5LlwiKSk7XG4gICAgfTtcbiAgICBrZXlPcGVyYXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJJbXBvcnRLZXkgZmFpbGVkIHRvIGltcG9ydCBrZXkuXCIpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlclZpZXcoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLElBQWdCO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFORCxrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQ3J5cHRvU2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYkNyeXB0b1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0U7QUFDaEUseUNBSXFCO0FBQ3JCLGtFQUEyRDtBQUUzRDtJQUlFLGdCQUFZLE1BQW1CO1FBRnZCLFdBQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3JDLElBQUEsaUNBQVksR0FBRTtxQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsRUFDdkIsNkJBQWlCLEVBQ2pCLEtBQUssRUFDTCxDQUFDLE1BQU0sQ0FBQyxDQUNUO3FCQUNBLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzNDLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQU0sR0FBTjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztnQkFDdkIsT0FBQSxJQUFBLGlDQUFZLEdBQUU7cUJBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQWlCLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFwQixDQUFvQixDQUFDO1lBRnZDLENBRXVDLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQWtCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNyQixJQUFJLENBQUM7WUFDSixPQUFBLElBQUEsaUNBQVksR0FBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFZLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQztRQUE5RCxDQUE4RCxDQUMvRDthQUNBLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQztBQXREWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuaW1wb3J0IHtcbiAgRU1QVFlfREFUQV9TSEFfMjU2LFxuICBTSEFfMjU2X0hBU0gsXG4gIFNIQV8yNTZfSE1BQ19BTEdPLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvY2F0ZVdpbmRvdyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWxvY2F0ZS13aW5kb3dcIjtcblxuZXhwb3J0IGNsYXNzIFNoYTI1NiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGtleTogUHJvbWlzZTxDcnlwdG9LZXk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvSGFzaDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDApO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMua2V5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2NhdGVXaW5kb3coKVxuICAgICAgICAgIC5jcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgICAgICAgIFwicmF3XCIsXG4gICAgICAgICAgICBjb252ZXJ0VG9CdWZmZXIoc2VjcmV0KSxcbiAgICAgICAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBbXCJzaWduXCJdXG4gICAgICAgICAgKVxuICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMua2V5LmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoZGF0YTogU291cmNlRGF0YSk6IHZvaWQge1xuICAgIGlmIChpc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IGNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICB0aGlzLnRvSGFzaC5ieXRlTGVuZ3RoICsgdXBkYXRlLmJ5dGVMZW5ndGhcbiAgICApO1xuICAgIHR5cGVkQXJyYXkuc2V0KHRoaXMudG9IYXNoLCAwKTtcbiAgICB0eXBlZEFycmF5LnNldCh1cGRhdGUsIHRoaXMudG9IYXNoLmJ5dGVMZW5ndGgpO1xuICAgIHRoaXMudG9IYXNoID0gdHlwZWRBcnJheTtcbiAgfVxuXG4gIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAodGhpcy5rZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleS50aGVuKChrZXkpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpXG4gICAgICAgICAgLmNyeXB0by5zdWJ0bGUuc2lnbihTSEFfMjU2X0hNQUNfQUxHTywga2V5LCB0aGlzLnRvSGFzaClcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5RGF0YSh0aGlzLnRvSGFzaCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoRU1QVFlfREFUQV9TSEFfMjU2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpLmNyeXB0by5zdWJ0bGUuZGlnZXN0KFNIQV8yNTZfSEFTSCwgdGhpcy50b0hhc2gpXG4gICAgICApXG4gICAgICAudGhlbigoZGF0YSkgPT4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH1cbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFB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LENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFXLEVBQUUsQ0FBQztBQUVyQzs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFXLEVBQUUsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ2pDLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRTogbnVtYmVyID0gNjQ7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBESUdFU1RfTEVOR1RIOiBudW1iZXIgPSAzMjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWSA9IG5ldyBVaW50MzJBcnJheShbXG4gIDB4NDI4YTJmOTgsXG4gIDB4NzEzNzQ0OTEsXG4gIDB4YjVjMGZiY2YsXG4gIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsXG4gIDB4NTlmMTExZjEsXG4gIDB4OTIzZjgyYTQsXG4gIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsXG4gIDB4MTI4MzViMDEsXG4gIDB4MjQzMTg1YmUsXG4gIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsXG4gIDB4ODBkZWIxZmUsXG4gIDB4OWJkYzA2YTcsXG4gIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsXG4gIDB4ZWZiZTQ3ODYsXG4gIDB4MGZjMTlkYzYsXG4gIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsXG4gIDB4NGE3NDg0YWEsXG4gIDB4NWNiMGE5ZGMsXG4gIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsXG4gIDB4YTgzMWM2NmQsXG4gIDB4YjAwMzI3YzgsXG4gIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsXG4gIDB4ZDVhNzkxNDcsXG4gIDB4MDZjYTYzNTEsXG4gIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsXG4gIDB4MmUxYjIxMzgsXG4gIDB4NGQyYzZkZmMsXG4gIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsXG4gIDB4NzY2YTBhYmIsXG4gIDB4ODFjMmM5MmUsXG4gIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsXG4gIDB4YTgxYTY2NGIsXG4gIDB4YzI0YjhiNzAsXG4gIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksXG4gIDB4ZDY5OTA2MjQsXG4gIDB4ZjQwZTM1ODUsXG4gIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsXG4gIDB4MWUzNzZjMDgsXG4gIDB4Mjc0ODc3NGMsXG4gIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsXG4gIDB4NGVkOGFhNGEsXG4gIDB4NWI5Y2NhNGYsXG4gIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsXG4gIDB4NzhhNTYzNmYsXG4gIDB4ODRjODc4MTQsXG4gIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsXG4gIDB4YTQ1MDZjZWIsXG4gIDB4YmVmOWEzZjcsXG4gIDB4YzY3MTc4ZjJcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFtcbiAgMHg2YTA5ZTY2NyxcbiAgMHhiYjY3YWU4NSxcbiAgMHgzYzZlZjM3MixcbiAgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZixcbiAgMHg5YjA1Njg4YyxcbiAgMHgxZjgzZDlhYixcbiAgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9IQVNIQUJMRV9MRU5HVEggPSAyICoqIDUzIC0gMTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vanNTaGEyNTZcIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNTaGEyNTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNTaGEyNTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUF5QztBQUN6Qyx5Q0FBd0M7QUFFeEMseUNBQWdFO0FBRWhFO0lBS0UsZ0JBQVksTUFBbUI7UUFKZCxTQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFLdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQzdCLElBQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIscUNBQXFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sTUFBa0I7UUFDdkIsSUFBSSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csdUJBQU0sR0FBWjs7O2dCQUNFLHNCQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQzs7O0tBQzFCO0lBQ0gsYUFBQztBQUFELENBQUMsQUFsRUQsSUFrRUM7QUFsRVksd0JBQU07QUFvRW5CLFNBQVMsZ0JBQWdCLENBQUMsTUFBa0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxzQkFBVSxFQUFFO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSYXdTaGEyNTYgfSBmcm9tIFwiLi9SYXdTaGEyNTZcIjtcbmltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU2hhMjU2IGltcGxlbWVudHMgSGFzaCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzaCA9IG5ldyBSYXdTaGEyNTYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRlcj86IFJhd1NoYTI1NjtcbiAgcHJpdmF0ZSBlcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICB0aGlzLm91dGVyID0gbmV3IFJhd1NoYTI1NigpO1xuICAgICAgY29uc3QgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KHNlY3JldCk7XG4gICAgICBjb25zdCBvdXRlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICAgICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaW5uZXJbaV0gXj0gMHgzNjtcbiAgICAgICAgb3V0ZXJbaV0gXj0gMHg1YztcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXRlcik7XG5cbiAgICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29waWVkIGtleSBpbiBtZW1vcnlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmhhc2gudXBkYXRlKGNvbnZlcnRUb0J1ZmZlcih0b0hhc2gpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG4gIH1cblxuICAvKiBUaGlzIHN5bmNocm9ub3VzIG1ldGhvZCBrZWVwcyBjb21wYXRpYmlsaXR5XG4gICAqIHdpdGggdGhlIHYyIGF3cy1zZGsuXG4gICAqL1xuICBkaWdlc3RTeW5jKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGVyKSB7XG4gICAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIC8qIFRoZSB1bmRlcmx5aW5nIGRpZ2VzdCBtZXRob2QgaGVyZSBpcyBzeW5jaHJvbm91cy5cbiAgICogVG8ga2VlcCB0aGUgc2FtZSBpbnRlcmZhY2Ugd2l0aCB0aGUgb3RoZXIgaGFzaCBmdW5jdGlvbnNcbiAgICogdGhlIGRlZmF1bHQgaXMgdG8gZXhwb3NlIHRoaXMgYXMgYW4gYXN5bmMgbWV0aG9kLlxuICAgKiBIb3dldmVyLCBpdCBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1bCB0byBoYXZlIGEgc3luYyBtZXRob2QuXG4gICAqL1xuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0U3luYygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoc2VjcmV0OiBTb3VyY2VEYXRhKTogVWludDhBcnJheSB7XG4gIGxldCBpbnB1dCA9IGNvbnZlcnRUb0J1ZmZlcihzZWNyZXQpO1xuXG4gIGlmIChpbnB1dC5ieXRlTGVuZ3RoID4gQkxPQ0tfU0laRSkge1xuICAgIGNvbnN0IGJ1ZmZlckhhc2ggPSBuZXcgUmF3U2hhMjU2KCk7XG4gICAgYnVmZmVySGFzaC51cGRhdGUoaW5wdXQpO1xuICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICBidWZmZXIuc2V0KGlucHV0KTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VwcG9ydHNXZWJDcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsSUFDRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQ3hDO1FBQ1EsSUFBQSxNQUFNLEdBQUssTUFBTSxDQUFDLE1BQU0sT0FBbEIsQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsZUFBZSxHQUFLLE1BQU0sQ0FBQyxNQUFNLGdCQUFsQixDQUFtQjtRQUUxQyxPQUFPLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQztLQUM5QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVJELG9EQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxDQUNMLE1BQU07UUFDTixtQkFBbUIsQ0FBQyxLQUFLLENBQ3ZCLFVBQUEsVUFBVSxJQUFJLE9BQUEsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUF4QyxDQUF3QyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsb0RBT0M7QUFFRCxTQUFzQixtQkFBbUIsQ0FBQyxNQUFvQjs7Ozs7O29CQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUFFLHNCQUFPLEtBQUssRUFBQzs7OztvQkFFbEMscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsU0FBUyxDQUFDLENBQ1osRUFBQTs7b0JBSkssR0FBRyxHQUFHLFNBSVg7b0JBQ3VCLHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQzFDOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLEVBQUUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzdCLGNBQWMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFNBQVMsRUFBRSxHQUFHO3lCQUNmLEVBQ0QsR0FBRyxFQUNILElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUNsQixFQUFBOztvQkFUSyxlQUFlLEdBQUcsU0FTdkI7b0JBQ0Qsc0JBQU8sZUFBZSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUM7OztvQkFFekMsc0JBQU8sS0FBSyxFQUFDOzs7OztDQUVoQjtBQXRCRCxrREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN1YnRsZUNyeXB0b01ldGhvZCA9XG4gIHwgXCJkZWNyeXB0XCJcbiAgfCBcImRpZ2VzdFwiXG4gIHwgXCJlbmNyeXB0XCJcbiAgfCBcImV4cG9ydEtleVwiXG4gIHwgXCJnZW5lcmF0ZUtleVwiXG4gIHwgXCJpbXBvcnRLZXlcIlxuICB8IFwic2lnblwiXG4gIHwgXCJ2ZXJpZnlcIjtcblxuY29uc3Qgc3VidGxlQ3J5cHRvTWV0aG9kczogQXJyYXk8U3VidGxlQ3J5cHRvTWV0aG9kPiA9IFtcbiAgXCJkZWNyeXB0XCIsXG4gIFwiZGlnZXN0XCIsXG4gIFwiZW5jcnlwdFwiLFxuICBcImV4cG9ydEtleVwiLFxuICBcImdlbmVyYXRlS2V5XCIsXG4gIFwiaW1wb3J0S2V5XCIsXG4gIFwic2lnblwiLFxuICBcInZlcmlmeVwiXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJDcnlwdG8od2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdykgJiZcbiAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5zdWJ0bGUgPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgeyBzdWJ0bGUgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB3aW5kb3cuY3J5cHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgeyBnZXRSYW5kb21WYWx1ZXMgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhbmRvbVZhbHVlcyA9PT0gXCJmdW5jdGlvblwiO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlOiBTdWJ0bGVDcnlwdG8pIHtcbiAgcmV0dXJuIChcbiAgICBzdWJ0bGUgJiZcbiAgICBzdWJ0bGVDcnlwdG9NZXRob2RzLmV2ZXJ5KFxuICAgICAgbWV0aG9kTmFtZSA9PiB0eXBlb2Ygc3VidGxlW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdXBwb3J0c1plcm9CeXRlR0NNKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIGlmICghc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleShcbiAgICAgIHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMTI4IH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuICAgIGNvbnN0IHplcm9CeXRlQXV0aFRhZyA9IGF3YWl0IHN1YnRsZS5lbmNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFFUy1HQ01cIixcbiAgICAgICAgaXY6IG5ldyBVaW50OEFycmF5KEFycmF5KDEyKSksXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBuZXcgVWludDhBcnJheShBcnJheSgxNikpLFxuICAgICAgICB0YWdMZW5ndGg6IDEyOFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIG5ldyBVaW50OEFycmF5KDApXG4gICAgKTtcbiAgICByZXR1cm4gemVyb0J5dGVBdXRoVGFnLmJ5dGVMZW5ndGggPT09IDE2O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydFRvQnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRUb0J1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBR3RDLGdFQUF5RTtBQUV6RSxpQkFBaUI7QUFDakIsSUFBTSxRQUFRLEdBQ1osT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJO0lBQzFDLENBQUMsQ0FBQyxVQUFDLEtBQWEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUExQixDQUEwQjtJQUMvQyxDQUFDLENBQUMsNEJBQWUsQ0FBQztBQUV0QixTQUFnQixlQUFlLENBQUMsSUFBZ0I7SUFDOUMsOEJBQThCO0lBQzlCLElBQUksSUFBSSxZQUFZLFVBQVU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUU1QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZnJvbVV0ZjggYXMgZnJvbVV0ZjhCcm93c2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXRmOC1icm93c2VyXCI7XG5cbi8vIFF1aWNrIHBvbHlmaWxsXG5jb25zdCBmcm9tVXRmOCA9XG4gIHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgQnVmZmVyLmZyb21cbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBCdWZmZXIuZnJvbShpbnB1dCwgXCJ1dGY4XCIpXG4gICAgOiBmcm9tVXRmOEJyb3dzZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICAvLyBBbHJlYWR5IGEgVWludDgsIGRvIG5vdGhpbmdcbiAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gZGF0YTtcblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQixxREFBa0Q7QUFBMUMsa0hBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7IGNvbnZlcnRUb0J1ZmZlciB9IGZyb20gXCIuL2NvbnZlcnRUb0J1ZmZlclwiO1xuZXhwb3J0IHsgaXNFbXB0eURhdGEgfSBmcm9tIFwiLi9pc0VtcHR5RGF0YVwiO1xuZXhwb3J0IHsgbnVtVG9VaW50OCB9IGZyb20gXCIuL251bVRvVWludDhcIjtcbmV4cG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tICcuL3VpbnQzMkFycmF5RnJvbSc7XG4iXX0=","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUl0QyxTQUFnQixXQUFXLENBQUMsSUFBZ0I7SUFDMUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQU5ELGtDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtVG9VaW50OC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udW1Ub1VpbnQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUNwQixDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3hCLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEdBQUcsVUFBVTtLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUEQsZ0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IGZ1bmN0aW9uIG51bVRvVWludDgobnVtOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFtcbiAgICAobnVtICYgMHhmZjAwMDAwMCkgPj4gMjQsXG4gICAgKG51bSAmIDB4MDBmZjAwMDApID4+IDE2LFxuICAgIChudW0gJiAweDAwMDBmZjAwKSA+PiA4LFxuICAgIG51bSAmIDB4MDAwMDAwZmYsXG4gIF0pO1xufVxuIl19","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWludDMyQXJyYXlGcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VpbnQzMkFycmF5RnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBRXRDLDBEQUEwRDtBQUMxRCxTQUFnQixlQUFlLENBQUMsYUFBNEI7SUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDZixJQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9DO1FBQ0QsT0FBTyxZQUFZLENBQUE7S0FDcEI7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQVZELDBDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIElFIDExIGRvZXMgbm90IHN1cHBvcnQgQXJyYXkuZnJvbSwgc28gd2UgZG8gaXQgbWFudWFsbHlcbmV4cG9ydCBmdW5jdGlvbiB1aW50MzJBcnJheUZyb20oYV9sb29rVXBUYWJsZTogQXJyYXk8bnVtYmVyPik6IFVpbnQzMkFycmF5IHtcbiAgaWYgKCFBcnJheS5mcm9tKSB7XG4gICAgY29uc3QgcmV0dXJuX2FycmF5ID0gbmV3IFVpbnQzMkFycmF5KGFfbG9va1VwVGFibGUubGVuZ3RoKVxuICAgIGxldCBhX2luZGV4ID0gMFxuICAgIHdoaWxlIChhX2luZGV4IDwgYV9sb29rVXBUYWJsZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybl9hcnJheVthX2luZGV4XSA9IGFfbG9va1VwVGFibGVbYV9pbmRleF1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl9hcnJheVxuICB9XG4gIHJldHVybiBVaW50MzJBcnJheS5mcm9tKGFfbG9va1VwVGFibGUpXG59XG4iXX0=","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n//# sourceMappingURL=MsWindow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFlBQVksR0FBd0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFeEQsUUFBQSxpQkFBaUIsR0FBZ0Q7SUFDNUUsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsb0JBQVk7Q0FDbkIsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDL0MsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEVBQUU7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0hBXzI1Nl9IQVNIOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH0gPSB7IG5hbWU6IFwiU0hBLTI1NlwiIH07XG5cbmV4cG9ydCBjb25zdCBTSEFfMjU2X0hNQUNfQUxHTzogeyBuYW1lOiBcIkhNQUNcIjsgaGFzaDogeyBuYW1lOiBcIlNIQS0yNTZcIiB9IH0gPSB7XG4gIG5hbWU6IFwiSE1BQ1wiLFxuICBoYXNoOiBTSEFfMjU2X0hBU0hcbn07XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9EQVRBX1NIQV8yNTYgPSBuZXcgVWludDhBcnJheShbXG4gIDIyNyxcbiAgMTc2LFxuICAxOTYsXG4gIDY2LFxuICAxNTIsXG4gIDI1MixcbiAgMjgsXG4gIDIwLFxuICAxNTQsXG4gIDI1MSxcbiAgMjQ0LFxuICAyMDAsXG4gIDE1MyxcbiAgMTExLFxuICAxODUsXG4gIDM2LFxuICAzOSxcbiAgMTc0LFxuICA2NSxcbiAgMjI4LFxuICAxMDAsXG4gIDE1NSxcbiAgMTQ3LFxuICA3NixcbiAgMTY0LFxuICAxNDksXG4gIDE1MyxcbiAgMjcsXG4gIDEyMCxcbiAgODIsXG4gIDE4NCxcbiAgODVcbl0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NQbGF0Zm9ybVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zc1BsYXRmb3JtU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFvRDtBQUNwRCxxREFBOEQ7QUFDOUQsbURBQTJEO0FBRTNELHVFQUFvRTtBQUNwRSw2REFBd0Q7QUFDeEQsa0VBQTJEO0FBRTNEO0lBR0UsZ0JBQVksTUFBbUI7UUFDN0IsSUFBSSxJQUFBLHVDQUFpQixFQUFDLElBQUEsaUNBQVksR0FBRSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUEsMkJBQVUsRUFBQyxJQUFBLGlDQUFZLEdBQUUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sSUFBZ0IsRUFBRSxRQUFzQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUFNLEdBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgSnNTaGEyNTYgfSBmcm9tIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBzdXBwb3J0c1dlYkNyeXB0byB9IGZyb20gXCJAYXdzLWNyeXB0by9zdXBwb3J0cy13ZWItY3J5cHRvXCI7XG5pbXBvcnQgeyBpc01zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNoOiBIYXNoO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc3VwcG9ydHNXZWJDcnlwdG8obG9jYXRlV2luZG93KCkpKSB7XG4gICAgICB0aGlzLmhhc2ggPSBuZXcgV2ViQ3J5cHRvU2hhMjU2KHNlY3JldCk7XG4gICAgfSBlbHNlIGlmIChpc01zV2luZG93KGxvY2F0ZVdpbmRvdygpKSkge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEllMTFTaGEyNTYoc2VjcmV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEpzU2hhMjU2KHNlY3JldCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKGRhdGE6IFNvdXJjZURhdGEsIGVuY29kaW5nPzogXCJ1dGY4XCIgfCBcImFzY2lpXCIgfCBcImxhdGluMVwiKTogdm9pZCB7XG4gICAgdGhpcy5oYXNoLnVwZGF0ZShkYXRhLCBlbmNvZGluZyk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWUxMVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pZTExU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1Qyx5Q0FBZ0Q7QUFFaEQsZ0VBQXNEO0FBRXRELGtFQUEyRDtBQUUzRDtJQUdFLGdCQUFZLE1BQW1CO1FBQzdCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsT0FBTztnQkFDakQsT0FBQyxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0MsNkJBQWlCLEVBQ2pCLE9BQU8sQ0FDUjtZQUhELENBR0MsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUM3QixJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUF6QixpQkFnQkM7UUFmQyxJQUFJLElBQUEseUJBQVcsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztZQUM1QyxTQUFTLENBQUMsT0FBTyxHQUFHO2dCQUNsQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzdCLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdDLENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBTSxHQUFOO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsVUFBQSxTQUFTO1lBQ1AsT0FBQSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHO29CQUNsQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLFVBQVUsR0FBRztvQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNwQixPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNDO29CQUNELE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBWkYsQ0FZRSxDQUNMLENBQUM7SUFDSixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2REQsSUF1REM7QUF2RFksd0JBQU07QUF5RG5CLFNBQVMsYUFBYSxDQUFDLE1BQWtCO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLFlBQVksR0FBSSxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxFQUNMLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUN6Qiw2QkFBaUIsRUFDakIsS0FBSyxFQUNMLENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUVGLFlBQVksQ0FBQyxVQUFVLEdBQUc7WUFDeEIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxHQUFHO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFnQjtJQUN6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUEsNEJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlEYXRhIH0gZnJvbSBcIi4vaXNFbXB0eURhdGFcIjtcbmltcG9ydCB7IFNIQV8yNTZfSE1BQ19BTEdPIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuaW1wb3J0IHsgQ3J5cHRvT3BlcmF0aW9uLCBLZXksIE1zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb246IFByb21pc2U8Q3J5cHRvT3BlcmF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBTb3VyY2VEYXRhKSB7XG4gICAgaWYgKHNlY3JldCkge1xuICAgICAgdGhpcy5vcGVyYXRpb24gPSBnZXRLZXlQcm9taXNlKHNlY3JldCkudGhlbihrZXlEYXRhID0+XG4gICAgICAgIChsb2NhdGVXaW5kb3coKSBhcyBNc1dpbmRvdykubXNDcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICAgICAgU0hBXzI1Nl9ITUFDX0FMR08sXG4gICAgICAgICAga2V5RGF0YVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5vcGVyYXRpb24uY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgKGxvY2F0ZVdpbmRvdygpIGFzIE1zV2luZG93KS5tc0NyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGlvbiA9IHRoaXMub3BlcmF0aW9uLnRoZW4ob3BlcmF0aW9uID0+IHtcbiAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIHVwZGF0aW5nIGhhc2hcIilcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvcGVyYXRpb24ucHJvY2Vzcyh0b0FycmF5QnVmZmVyVmlldyh0b0hhc2gpKTtcblxuICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICB9KTtcbiAgICB0aGlzLm9wZXJhdGlvbi5jYXRjaCgoKSA9PiB7fSk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLnRoZW48VWludDhBcnJheT4oXG4gICAgICBvcGVyYXRpb24gPT5cbiAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBvcGVyYXRpb24ub25jb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24ucmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobmV3IFVpbnQ4QXJyYXkob3BlcmF0aW9uLnJlc3VsdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG9wZXJhdGlvbi5maW5pc2goKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEtleVByb21pc2Uoc2VjcmV0OiBTb3VyY2VEYXRhKTogUHJvbWlzZTxLZXk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBrZXlPcGVyYXRpb24gPSAobG9jYXRlV2luZG93KCkgYXMgTXNXaW5kb3cpLm1zQ3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInJhd1wiLFxuICAgICAgdG9BcnJheUJ1ZmZlclZpZXcoc2VjcmV0KSxcbiAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIGtleU9wZXJhdGlvbi5vbmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGtleU9wZXJhdGlvbi5yZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShrZXlPcGVyYXRpb24ucmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkltcG9ydEtleSBjb21wbGV0ZWQgd2l0aG91dCBpbXBvcnRpbmcga2V5LlwiKSk7XG4gICAgfTtcbiAgICBrZXlPcGVyYXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJJbXBvcnRLZXkgZmFpbGVkIHRvIGltcG9ydCBrZXkuXCIpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlclZpZXcoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLElBQWdCO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFORCxrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQ3J5cHRvU2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYkNyeXB0b1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0U7QUFDaEUseUNBSXFCO0FBQ3JCLGtFQUEyRDtBQUUzRDtJQUlFLGdCQUFZLE1BQW1CO1FBRnZCLFdBQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3JDLElBQUEsaUNBQVksR0FBRTtxQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsRUFDdkIsNkJBQWlCLEVBQ2pCLEtBQUssRUFDTCxDQUFDLE1BQU0sQ0FBQyxDQUNUO3FCQUNBLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzNDLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQU0sR0FBTjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztnQkFDdkIsT0FBQSxJQUFBLGlDQUFZLEdBQUU7cUJBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQWlCLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFwQixDQUFvQixDQUFDO1lBRnZDLENBRXVDLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQWtCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNyQixJQUFJLENBQUM7WUFDSixPQUFBLElBQUEsaUNBQVksR0FBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFZLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQztRQUE5RCxDQUE4RCxDQUMvRDthQUNBLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQztBQXREWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuaW1wb3J0IHtcbiAgRU1QVFlfREFUQV9TSEFfMjU2LFxuICBTSEFfMjU2X0hBU0gsXG4gIFNIQV8yNTZfSE1BQ19BTEdPLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvY2F0ZVdpbmRvdyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWxvY2F0ZS13aW5kb3dcIjtcblxuZXhwb3J0IGNsYXNzIFNoYTI1NiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGtleTogUHJvbWlzZTxDcnlwdG9LZXk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvSGFzaDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDApO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMua2V5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2NhdGVXaW5kb3coKVxuICAgICAgICAgIC5jcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgICAgICAgIFwicmF3XCIsXG4gICAgICAgICAgICBjb252ZXJ0VG9CdWZmZXIoc2VjcmV0KSxcbiAgICAgICAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBbXCJzaWduXCJdXG4gICAgICAgICAgKVxuICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMua2V5LmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoZGF0YTogU291cmNlRGF0YSk6IHZvaWQge1xuICAgIGlmIChpc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IGNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICB0aGlzLnRvSGFzaC5ieXRlTGVuZ3RoICsgdXBkYXRlLmJ5dGVMZW5ndGhcbiAgICApO1xuICAgIHR5cGVkQXJyYXkuc2V0KHRoaXMudG9IYXNoLCAwKTtcbiAgICB0eXBlZEFycmF5LnNldCh1cGRhdGUsIHRoaXMudG9IYXNoLmJ5dGVMZW5ndGgpO1xuICAgIHRoaXMudG9IYXNoID0gdHlwZWRBcnJheTtcbiAgfVxuXG4gIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAodGhpcy5rZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleS50aGVuKChrZXkpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpXG4gICAgICAgICAgLmNyeXB0by5zdWJ0bGUuc2lnbihTSEFfMjU2X0hNQUNfQUxHTywga2V5LCB0aGlzLnRvSGFzaClcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5RGF0YSh0aGlzLnRvSGFzaCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoRU1QVFlfREFUQV9TSEFfMjU2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpLmNyeXB0by5zdWJ0bGUuZGlnZXN0KFNIQV8yNTZfSEFTSCwgdGhpcy50b0hhc2gpXG4gICAgICApXG4gICAgICAudGhlbigoZGF0YSkgPT4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH1cbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFB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LENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFXLEVBQUUsQ0FBQztBQUVyQzs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFXLEVBQUUsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ2pDLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRTogbnVtYmVyID0gNjQ7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBESUdFU1RfTEVOR1RIOiBudW1iZXIgPSAzMjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWSA9IG5ldyBVaW50MzJBcnJheShbXG4gIDB4NDI4YTJmOTgsXG4gIDB4NzEzNzQ0OTEsXG4gIDB4YjVjMGZiY2YsXG4gIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsXG4gIDB4NTlmMTExZjEsXG4gIDB4OTIzZjgyYTQsXG4gIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsXG4gIDB4MTI4MzViMDEsXG4gIDB4MjQzMTg1YmUsXG4gIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsXG4gIDB4ODBkZWIxZmUsXG4gIDB4OWJkYzA2YTcsXG4gIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsXG4gIDB4ZWZiZTQ3ODYsXG4gIDB4MGZjMTlkYzYsXG4gIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsXG4gIDB4NGE3NDg0YWEsXG4gIDB4NWNiMGE5ZGMsXG4gIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsXG4gIDB4YTgzMWM2NmQsXG4gIDB4YjAwMzI3YzgsXG4gIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsXG4gIDB4ZDVhNzkxNDcsXG4gIDB4MDZjYTYzNTEsXG4gIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsXG4gIDB4MmUxYjIxMzgsXG4gIDB4NGQyYzZkZmMsXG4gIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsXG4gIDB4NzY2YTBhYmIsXG4gIDB4ODFjMmM5MmUsXG4gIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsXG4gIDB4YTgxYTY2NGIsXG4gIDB4YzI0YjhiNzAsXG4gIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksXG4gIDB4ZDY5OTA2MjQsXG4gIDB4ZjQwZTM1ODUsXG4gIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsXG4gIDB4MWUzNzZjMDgsXG4gIDB4Mjc0ODc3NGMsXG4gIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsXG4gIDB4NGVkOGFhNGEsXG4gIDB4NWI5Y2NhNGYsXG4gIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsXG4gIDB4NzhhNTYzNmYsXG4gIDB4ODRjODc4MTQsXG4gIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsXG4gIDB4YTQ1MDZjZWIsXG4gIDB4YmVmOWEzZjcsXG4gIDB4YzY3MTc4ZjJcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFtcbiAgMHg2YTA5ZTY2NyxcbiAgMHhiYjY3YWU4NSxcbiAgMHgzYzZlZjM3MixcbiAgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZixcbiAgMHg5YjA1Njg4YyxcbiAgMHgxZjgzZDlhYixcbiAgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9IQVNIQUJMRV9MRU5HVEggPSAyICoqIDUzIC0gMTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vanNTaGEyNTZcIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNTaGEyNTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNTaGEyNTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUF5QztBQUN6Qyx5Q0FBd0M7QUFFeEMseUNBQWdFO0FBRWhFO0lBS0UsZ0JBQVksTUFBbUI7UUFKZCxTQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFLdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQzdCLElBQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIscUNBQXFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sTUFBa0I7UUFDdkIsSUFBSSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csdUJBQU0sR0FBWjs7O2dCQUNFLHNCQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQzs7O0tBQzFCO0lBQ0gsYUFBQztBQUFELENBQUMsQUFsRUQsSUFrRUM7QUFsRVksd0JBQU07QUFvRW5CLFNBQVMsZ0JBQWdCLENBQUMsTUFBa0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxzQkFBVSxFQUFFO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSYXdTaGEyNTYgfSBmcm9tIFwiLi9SYXdTaGEyNTZcIjtcbmltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU2hhMjU2IGltcGxlbWVudHMgSGFzaCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzaCA9IG5ldyBSYXdTaGEyNTYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRlcj86IFJhd1NoYTI1NjtcbiAgcHJpdmF0ZSBlcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICB0aGlzLm91dGVyID0gbmV3IFJhd1NoYTI1NigpO1xuICAgICAgY29uc3QgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KHNlY3JldCk7XG4gICAgICBjb25zdCBvdXRlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICAgICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaW5uZXJbaV0gXj0gMHgzNjtcbiAgICAgICAgb3V0ZXJbaV0gXj0gMHg1YztcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXRlcik7XG5cbiAgICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29waWVkIGtleSBpbiBtZW1vcnlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmhhc2gudXBkYXRlKGNvbnZlcnRUb0J1ZmZlcih0b0hhc2gpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG4gIH1cblxuICAvKiBUaGlzIHN5bmNocm9ub3VzIG1ldGhvZCBrZWVwcyBjb21wYXRpYmlsaXR5XG4gICAqIHdpdGggdGhlIHYyIGF3cy1zZGsuXG4gICAqL1xuICBkaWdlc3RTeW5jKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGVyKSB7XG4gICAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIC8qIFRoZSB1bmRlcmx5aW5nIGRpZ2VzdCBtZXRob2QgaGVyZSBpcyBzeW5jaHJvbm91cy5cbiAgICogVG8ga2VlcCB0aGUgc2FtZSBpbnRlcmZhY2Ugd2l0aCB0aGUgb3RoZXIgaGFzaCBmdW5jdGlvbnNcbiAgICogdGhlIGRlZmF1bHQgaXMgdG8gZXhwb3NlIHRoaXMgYXMgYW4gYXN5bmMgbWV0aG9kLlxuICAgKiBIb3dldmVyLCBpdCBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1bCB0byBoYXZlIGEgc3luYyBtZXRob2QuXG4gICAqL1xuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0U3luYygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoc2VjcmV0OiBTb3VyY2VEYXRhKTogVWludDhBcnJheSB7XG4gIGxldCBpbnB1dCA9IGNvbnZlcnRUb0J1ZmZlcihzZWNyZXQpO1xuXG4gIGlmIChpbnB1dC5ieXRlTGVuZ3RoID4gQkxPQ0tfU0laRSkge1xuICAgIGNvbnN0IGJ1ZmZlckhhc2ggPSBuZXcgUmF3U2hhMjU2KCk7XG4gICAgYnVmZmVySGFzaC51cGRhdGUoaW5wdXQpO1xuICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICBidWZmZXIuc2V0KGlucHV0KTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VwcG9ydHNXZWJDcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsSUFDRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQ3hDO1FBQ1EsSUFBQSxNQUFNLEdBQUssTUFBTSxDQUFDLE1BQU0sT0FBbEIsQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsZUFBZSxHQUFLLE1BQU0sQ0FBQyxNQUFNLGdCQUFsQixDQUFtQjtRQUUxQyxPQUFPLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQztLQUM5QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVJELG9EQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxDQUNMLE1BQU07UUFDTixtQkFBbUIsQ0FBQyxLQUFLLENBQ3ZCLFVBQUEsVUFBVSxJQUFJLE9BQUEsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUF4QyxDQUF3QyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsb0RBT0M7QUFFRCxTQUFzQixtQkFBbUIsQ0FBQyxNQUFvQjs7Ozs7O29CQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUFFLHNCQUFPLEtBQUssRUFBQzs7OztvQkFFbEMscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsU0FBUyxDQUFDLENBQ1osRUFBQTs7b0JBSkssR0FBRyxHQUFHLFNBSVg7b0JBQ3VCLHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQzFDOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLEVBQUUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzdCLGNBQWMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFNBQVMsRUFBRSxHQUFHO3lCQUNmLEVBQ0QsR0FBRyxFQUNILElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUNsQixFQUFBOztvQkFUSyxlQUFlLEdBQUcsU0FTdkI7b0JBQ0Qsc0JBQU8sZUFBZSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUM7OztvQkFFekMsc0JBQU8sS0FBSyxFQUFDOzs7OztDQUVoQjtBQXRCRCxrREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN1YnRsZUNyeXB0b01ldGhvZCA9XG4gIHwgXCJkZWNyeXB0XCJcbiAgfCBcImRpZ2VzdFwiXG4gIHwgXCJlbmNyeXB0XCJcbiAgfCBcImV4cG9ydEtleVwiXG4gIHwgXCJnZW5lcmF0ZUtleVwiXG4gIHwgXCJpbXBvcnRLZXlcIlxuICB8IFwic2lnblwiXG4gIHwgXCJ2ZXJpZnlcIjtcblxuY29uc3Qgc3VidGxlQ3J5cHRvTWV0aG9kczogQXJyYXk8U3VidGxlQ3J5cHRvTWV0aG9kPiA9IFtcbiAgXCJkZWNyeXB0XCIsXG4gIFwiZGlnZXN0XCIsXG4gIFwiZW5jcnlwdFwiLFxuICBcImV4cG9ydEtleVwiLFxuICBcImdlbmVyYXRlS2V5XCIsXG4gIFwiaW1wb3J0S2V5XCIsXG4gIFwic2lnblwiLFxuICBcInZlcmlmeVwiXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJDcnlwdG8od2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdykgJiZcbiAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5zdWJ0bGUgPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgeyBzdWJ0bGUgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB3aW5kb3cuY3J5cHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgeyBnZXRSYW5kb21WYWx1ZXMgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhbmRvbVZhbHVlcyA9PT0gXCJmdW5jdGlvblwiO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlOiBTdWJ0bGVDcnlwdG8pIHtcbiAgcmV0dXJuIChcbiAgICBzdWJ0bGUgJiZcbiAgICBzdWJ0bGVDcnlwdG9NZXRob2RzLmV2ZXJ5KFxuICAgICAgbWV0aG9kTmFtZSA9PiB0eXBlb2Ygc3VidGxlW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdXBwb3J0c1plcm9CeXRlR0NNKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIGlmICghc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleShcbiAgICAgIHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMTI4IH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuICAgIGNvbnN0IHplcm9CeXRlQXV0aFRhZyA9IGF3YWl0IHN1YnRsZS5lbmNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFFUy1HQ01cIixcbiAgICAgICAgaXY6IG5ldyBVaW50OEFycmF5KEFycmF5KDEyKSksXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBuZXcgVWludDhBcnJheShBcnJheSgxNikpLFxuICAgICAgICB0YWdMZW5ndGg6IDEyOFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIG5ldyBVaW50OEFycmF5KDApXG4gICAgKTtcbiAgICByZXR1cm4gemVyb0J5dGVBdXRoVGFnLmJ5dGVMZW5ndGggPT09IDE2O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","import { __extends } from \"tslib\";\nimport { ServiceException as __ServiceException, } from \"@aws-sdk/smithy-client\";\nvar LocationServiceException = (function (_super) {\n __extends(LocationServiceException, _super);\n function LocationServiceException(options) {\n var _this = _super.call(this, options) || this;\n Object.setPrototypeOf(_this, LocationServiceException.prototype);\n return _this;\n }\n return LocationServiceException;\n}(__ServiceException));\nexport { LocationServiceException };\n","import { __assign, __extends } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nimport { LocationServiceException as __BaseException } from \"./LocationServiceException\";\nvar AccessDeniedException = (function (_super) {\n __extends(AccessDeniedException, _super);\n function AccessDeniedException(opts) {\n var _this = _super.call(this, __assign({ name: \"AccessDeniedException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"AccessDeniedException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, AccessDeniedException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return AccessDeniedException;\n}(__BaseException));\nexport { AccessDeniedException };\nvar ConflictException = (function (_super) {\n __extends(ConflictException, _super);\n function ConflictException(opts) {\n var _this = _super.call(this, __assign({ name: \"ConflictException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ConflictException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, ConflictException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return ConflictException;\n}(__BaseException));\nexport { ConflictException };\nvar InternalServerException = (function (_super) {\n __extends(InternalServerException, _super);\n function InternalServerException(opts) {\n var _this = _super.call(this, __assign({ name: \"InternalServerException\", $fault: \"server\" }, opts)) || this;\n _this.name = \"InternalServerException\";\n _this.$fault = \"server\";\n _this.$retryable = {};\n Object.setPrototypeOf(_this, InternalServerException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return InternalServerException;\n}(__BaseException));\nexport { InternalServerException };\nvar ResourceNotFoundException = (function (_super) {\n __extends(ResourceNotFoundException, _super);\n function ResourceNotFoundException(opts) {\n var _this = _super.call(this, __assign({ name: \"ResourceNotFoundException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ResourceNotFoundException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, ResourceNotFoundException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return ResourceNotFoundException;\n}(__BaseException));\nexport { ResourceNotFoundException };\nvar ServiceQuotaExceededException = (function (_super) {\n __extends(ServiceQuotaExceededException, _super);\n function ServiceQuotaExceededException(opts) {\n var _this = _super.call(this, __assign({ name: \"ServiceQuotaExceededException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ServiceQuotaExceededException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, ServiceQuotaExceededException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return ServiceQuotaExceededException;\n}(__BaseException));\nexport { ServiceQuotaExceededException };\nvar ThrottlingException = (function (_super) {\n __extends(ThrottlingException, _super);\n function ThrottlingException(opts) {\n var _this = _super.call(this, __assign({ name: \"ThrottlingException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ThrottlingException\";\n _this.$fault = \"client\";\n _this.$retryable = {};\n Object.setPrototypeOf(_this, ThrottlingException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return ThrottlingException;\n}(__BaseException));\nexport { ThrottlingException };\nvar ValidationException = (function (_super) {\n __extends(ValidationException, _super);\n function ValidationException(opts) {\n var _this = _super.call(this, __assign({ name: \"ValidationException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ValidationException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, ValidationException.prototype);\n _this.Message = opts.Message;\n _this.Reason = opts.Reason;\n _this.FieldList = opts.FieldList;\n return _this;\n }\n return ValidationException;\n}(__BaseException));\nexport { ValidationException };\nexport var AssociateTrackerConsumerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var AssociateTrackerConsumerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ValidationExceptionFieldFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteDevicePositionHistoryRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchItemErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteDevicePositionHistoryErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteDevicePositionHistoryResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteGeofenceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteGeofenceErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchDeleteGeofenceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var PositionalAccuracyFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DevicePositionUpdateFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING })), (obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }))); };\nexport var BatchEvaluateGeofencesRequestFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.DevicePositionUpdates && {\n DevicePositionUpdates: obj.DevicePositionUpdates.map(function (item) { return DevicePositionUpdateFilterSensitiveLog(item); }),\n}))); };\nexport var BatchEvaluateGeofencesErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchEvaluateGeofencesResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchGetDevicePositionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DevicePositionFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING })), (obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }))); };\nexport var BatchGetDevicePositionErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchGetDevicePositionResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.DevicePositions && {\n DevicePositions: obj.DevicePositions.map(function (item) { return DevicePositionFilterSensitiveLog(item); }),\n}))); };\nexport var CircleFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Center && { Center: SENSITIVE_STRING }))); };\nexport var GeofenceGeometryFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Polygon && { Polygon: obj.Polygon.map(function (item) { return SENSITIVE_STRING; }) })), (obj.Circle && { Circle: SENSITIVE_STRING }))); };\nexport var BatchPutGeofenceRequestEntryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Geometry && { Geometry: GeofenceGeometryFilterSensitiveLog(obj.Geometry) }))); };\nexport var BatchPutGeofenceRequestFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Entries && { Entries: obj.Entries.map(function (item) { return BatchPutGeofenceRequestEntryFilterSensitiveLog(item); }) }))); };\nexport var BatchPutGeofenceErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchPutGeofenceSuccessFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchPutGeofenceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchUpdateDevicePositionRequestFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Updates && { Updates: obj.Updates.map(function (item) { return DevicePositionUpdateFilterSensitiveLog(item); }) }))); };\nexport var BatchUpdateDevicePositionErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var BatchUpdateDevicePositionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CalculateRouteCarModeOptionsFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var TruckDimensionsFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var TruckWeightFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CalculateRouteTruckModeOptionsFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CalculateRouteRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.DeparturePosition && { DeparturePosition: SENSITIVE_STRING })), (obj.DestinationPosition && { DestinationPosition: SENSITIVE_STRING })), (obj.WaypointPositions && { WaypointPositions: SENSITIVE_STRING }))); };\nexport var LegGeometryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.LineString && { LineString: SENSITIVE_STRING }))); };\nexport var StepFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.StartPosition && { StartPosition: SENSITIVE_STRING })), (obj.EndPosition && { EndPosition: SENSITIVE_STRING }))); };\nexport var LegFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.StartPosition && { StartPosition: SENSITIVE_STRING })), (obj.EndPosition && { EndPosition: SENSITIVE_STRING })), (obj.Geometry && { Geometry: LegGeometryFilterSensitiveLog(obj.Geometry) })), (obj.Steps && { Steps: obj.Steps.map(function (item) { return StepFilterSensitiveLog(item); }) }))); };\nexport var CalculateRouteSummaryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.RouteBBox && { RouteBBox: SENSITIVE_STRING }))); };\nexport var CalculateRouteResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Legs && { Legs: obj.Legs.map(function (item) { return LegFilterSensitiveLog(item); }) })), (obj.Summary && { Summary: CalculateRouteSummaryFilterSensitiveLog(obj.Summary) }))); };\nexport var CalculateRouteMatrixRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.DeparturePositions && { DeparturePositions: SENSITIVE_STRING })), (obj.DestinationPositions && { DestinationPositions: SENSITIVE_STRING }))); };\nexport var RouteMatrixEntryErrorFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var RouteMatrixEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CalculateRouteMatrixSummaryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CalculateRouteMatrixResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SnappedDeparturePositions && { SnappedDeparturePositions: SENSITIVE_STRING })), (obj.SnappedDestinationPositions && { SnappedDestinationPositions: SENSITIVE_STRING }))); };\nexport var CreateGeofenceCollectionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateGeofenceCollectionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var MapConfigurationFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateMapRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateMapResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DataSourceConfigurationFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreatePlaceIndexRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreatePlaceIndexResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateRouteCalculatorRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateRouteCalculatorResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateTrackerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var CreateTrackerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteGeofenceCollectionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteGeofenceCollectionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteMapRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteMapResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeletePlaceIndexRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeletePlaceIndexResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteRouteCalculatorRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteRouteCalculatorResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteTrackerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteTrackerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeGeofenceCollectionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeGeofenceCollectionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeMapRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeMapResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribePlaceIndexRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribePlaceIndexResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeRouteCalculatorRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeRouteCalculatorResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeTrackerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DescribeTrackerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DisassociateTrackerConsumerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DisassociateTrackerConsumerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTagsForResourceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTagsForResourceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var TagResourceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var TagResourceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UntagResourceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UntagResourceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetGeofenceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetGeofenceResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Geometry && { Geometry: GeofenceGeometryFilterSensitiveLog(obj.Geometry) }))); };\nexport var ListGeofenceCollectionsRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListGeofenceCollectionsResponseEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListGeofenceCollectionsResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListGeofencesRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListGeofenceResponseEntryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Geometry && { Geometry: GeofenceGeometryFilterSensitiveLog(obj.Geometry) }))); };\nexport var ListGeofencesResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Entries && { Entries: obj.Entries.map(function (item) { return ListGeofenceResponseEntryFilterSensitiveLog(item); }) }))); };\nexport var PutGeofenceRequestFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Geometry && { Geometry: GeofenceGeometryFilterSensitiveLog(obj.Geometry) }))); };\nexport var PutGeofenceResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateGeofenceCollectionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateGeofenceCollectionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetDevicePositionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetDevicePositionResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING })), (obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }))); };\nexport var GetDevicePositionHistoryRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetDevicePositionHistoryResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.DevicePositions && {\n DevicePositions: obj.DevicePositions.map(function (item) { return DevicePositionFilterSensitiveLog(item); }),\n}))); };\nexport var GetMapGlyphsRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapGlyphsResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapSpritesRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapSpritesResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapStyleDescriptorRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapStyleDescriptorResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapTileRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetMapTileResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetPlaceRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var PlaceGeometryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Point && { Point: SENSITIVE_STRING }))); };\nexport var TimeZoneFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var PlaceFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Geometry && { Geometry: PlaceGeometryFilterSensitiveLog(obj.Geometry) }))); };\nexport var GetPlaceResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Place && { Place: PlaceFilterSensitiveLog(obj.Place) }))); };\nexport var ListDevicePositionsRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListDevicePositionsResponseEntryFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING })), (obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }))); };\nexport var ListDevicePositionsResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Entries && { Entries: obj.Entries.map(function (item) { return ListDevicePositionsResponseEntryFilterSensitiveLog(item); }) }))); };\nexport var ListMapsRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListMapsResponseEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListMapsResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListPlaceIndexesRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListPlaceIndexesResponseEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListPlaceIndexesResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListRouteCalculatorsRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListRouteCalculatorsResponseEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListRouteCalculatorsResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTrackerConsumersRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTrackerConsumersResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTrackersRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTrackersResponseEntryFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ListTrackersResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateMapRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateMapResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var SearchPlaceIndexForPositionRequestFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING }))); };\nexport var SearchForPositionResultFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Place && { Place: PlaceFilterSensitiveLog(obj.Place) }))); };\nexport var SearchPlaceIndexForPositionSummaryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Position && { Position: SENSITIVE_STRING }))); };\nexport var SearchPlaceIndexForPositionResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Summary && { Summary: SearchPlaceIndexForPositionSummaryFilterSensitiveLog(obj.Summary) })), (obj.Results && { Results: obj.Results.map(function (item) { return SearchForPositionResultFilterSensitiveLog(item); }) }))); };\nexport var SearchPlaceIndexForSuggestionsRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.Text && { Text: SENSITIVE_STRING })), (obj.BiasPosition && { BiasPosition: SENSITIVE_STRING })), (obj.FilterBBox && { FilterBBox: SENSITIVE_STRING }))); };\nexport var SearchForSuggestionsResultFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var SearchPlaceIndexForSuggestionsSummaryFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.Text && { Text: SENSITIVE_STRING })), (obj.BiasPosition && { BiasPosition: SENSITIVE_STRING })), (obj.FilterBBox && { FilterBBox: SENSITIVE_STRING }))); };\nexport var SearchPlaceIndexForSuggestionsResponseFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Summary && { Summary: SearchPlaceIndexForSuggestionsSummaryFilterSensitiveLog(obj.Summary) }))); };\nexport var SearchPlaceIndexForTextRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.Text && { Text: SENSITIVE_STRING })), (obj.BiasPosition && { BiasPosition: SENSITIVE_STRING })), (obj.FilterBBox && { FilterBBox: SENSITIVE_STRING }))); };\nexport var SearchForTextResultFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Place && { Place: PlaceFilterSensitiveLog(obj.Place) }))); };\nexport var SearchPlaceIndexForTextSummaryFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.Text && { Text: SENSITIVE_STRING })), (obj.BiasPosition && { BiasPosition: SENSITIVE_STRING })), (obj.FilterBBox && { FilterBBox: SENSITIVE_STRING })), (obj.ResultBBox && { ResultBBox: SENSITIVE_STRING }))); };\nexport var SearchPlaceIndexForTextResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Summary && { Summary: SearchPlaceIndexForTextSummaryFilterSensitiveLog(obj.Summary) })), (obj.Results && { Results: obj.Results.map(function (item) { return SearchForTextResultFilterSensitiveLog(item); }) }))); };\nexport var UpdatePlaceIndexRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdatePlaceIndexResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateRouteCalculatorRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateRouteCalculatorResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateTrackerRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var UpdateTrackerResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n//# sourceMappingURL=MsWindow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFlBQVksR0FBd0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFeEQsUUFBQSxpQkFBaUIsR0FBZ0Q7SUFDNUUsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsb0JBQVk7Q0FDbkIsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDL0MsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEVBQUU7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0hBXzI1Nl9IQVNIOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH0gPSB7IG5hbWU6IFwiU0hBLTI1NlwiIH07XG5cbmV4cG9ydCBjb25zdCBTSEFfMjU2X0hNQUNfQUxHTzogeyBuYW1lOiBcIkhNQUNcIjsgaGFzaDogeyBuYW1lOiBcIlNIQS0yNTZcIiB9IH0gPSB7XG4gIG5hbWU6IFwiSE1BQ1wiLFxuICBoYXNoOiBTSEFfMjU2X0hBU0hcbn07XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9EQVRBX1NIQV8yNTYgPSBuZXcgVWludDhBcnJheShbXG4gIDIyNyxcbiAgMTc2LFxuICAxOTYsXG4gIDY2LFxuICAxNTIsXG4gIDI1MixcbiAgMjgsXG4gIDIwLFxuICAxNTQsXG4gIDI1MSxcbiAgMjQ0LFxuICAyMDAsXG4gIDE1MyxcbiAgMTExLFxuICAxODUsXG4gIDM2LFxuICAzOSxcbiAgMTc0LFxuICA2NSxcbiAgMjI4LFxuICAxMDAsXG4gIDE1NSxcbiAgMTQ3LFxuICA3NixcbiAgMTY0LFxuICAxNDksXG4gIDE1MyxcbiAgMjcsXG4gIDEyMCxcbiAgODIsXG4gIDE4NCxcbiAgODVcbl0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NQbGF0Zm9ybVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zc1BsYXRmb3JtU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFvRDtBQUNwRCxxREFBOEQ7QUFDOUQsbURBQTJEO0FBRTNELHVFQUFvRTtBQUNwRSw2REFBd0Q7QUFDeEQsa0VBQTJEO0FBRTNEO0lBR0UsZ0JBQVksTUFBbUI7UUFDN0IsSUFBSSxJQUFBLHVDQUFpQixFQUFDLElBQUEsaUNBQVksR0FBRSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUEsMkJBQVUsRUFBQyxJQUFBLGlDQUFZLEdBQUUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sSUFBZ0IsRUFBRSxRQUFzQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUFNLEdBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgSnNTaGEyNTYgfSBmcm9tIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBzdXBwb3J0c1dlYkNyeXB0byB9IGZyb20gXCJAYXdzLWNyeXB0by9zdXBwb3J0cy13ZWItY3J5cHRvXCI7XG5pbXBvcnQgeyBpc01zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNoOiBIYXNoO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc3VwcG9ydHNXZWJDcnlwdG8obG9jYXRlV2luZG93KCkpKSB7XG4gICAgICB0aGlzLmhhc2ggPSBuZXcgV2ViQ3J5cHRvU2hhMjU2KHNlY3JldCk7XG4gICAgfSBlbHNlIGlmIChpc01zV2luZG93KGxvY2F0ZVdpbmRvdygpKSkge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEllMTFTaGEyNTYoc2VjcmV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEpzU2hhMjU2KHNlY3JldCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKGRhdGE6IFNvdXJjZURhdGEsIGVuY29kaW5nPzogXCJ1dGY4XCIgfCBcImFzY2lpXCIgfCBcImxhdGluMVwiKTogdm9pZCB7XG4gICAgdGhpcy5oYXNoLnVwZGF0ZShkYXRhLCBlbmNvZGluZyk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWUxMVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pZTExU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1Qyx5Q0FBZ0Q7QUFFaEQsZ0VBQXNEO0FBRXRELGtFQUEyRDtBQUUzRDtJQUdFLGdCQUFZLE1BQW1CO1FBQzdCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsT0FBTztnQkFDakQsT0FBQyxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0MsNkJBQWlCLEVBQ2pCLE9BQU8sQ0FDUjtZQUhELENBR0MsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUM3QixJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUF6QixpQkFnQkM7UUFmQyxJQUFJLElBQUEseUJBQVcsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztZQUM1QyxTQUFTLENBQUMsT0FBTyxHQUFHO2dCQUNsQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzdCLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdDLENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBTSxHQUFOO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsVUFBQSxTQUFTO1lBQ1AsT0FBQSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHO29CQUNsQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLFVBQVUsR0FBRztvQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNwQixPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNDO29CQUNELE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBWkYsQ0FZRSxDQUNMLENBQUM7SUFDSixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2REQsSUF1REM7QUF2RFksd0JBQU07QUF5RG5CLFNBQVMsYUFBYSxDQUFDLE1BQWtCO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLFlBQVksR0FBSSxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxFQUNMLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUN6Qiw2QkFBaUIsRUFDakIsS0FBSyxFQUNMLENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUVGLFlBQVksQ0FBQyxVQUFVLEdBQUc7WUFDeEIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxHQUFHO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFnQjtJQUN6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUEsNEJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlEYXRhIH0gZnJvbSBcIi4vaXNFbXB0eURhdGFcIjtcbmltcG9ydCB7IFNIQV8yNTZfSE1BQ19BTEdPIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuaW1wb3J0IHsgQ3J5cHRvT3BlcmF0aW9uLCBLZXksIE1zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb246IFByb21pc2U8Q3J5cHRvT3BlcmF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBTb3VyY2VEYXRhKSB7XG4gICAgaWYgKHNlY3JldCkge1xuICAgICAgdGhpcy5vcGVyYXRpb24gPSBnZXRLZXlQcm9taXNlKHNlY3JldCkudGhlbihrZXlEYXRhID0+XG4gICAgICAgIChsb2NhdGVXaW5kb3coKSBhcyBNc1dpbmRvdykubXNDcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICAgICAgU0hBXzI1Nl9ITUFDX0FMR08sXG4gICAgICAgICAga2V5RGF0YVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5vcGVyYXRpb24uY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgKGxvY2F0ZVdpbmRvdygpIGFzIE1zV2luZG93KS5tc0NyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGlvbiA9IHRoaXMub3BlcmF0aW9uLnRoZW4ob3BlcmF0aW9uID0+IHtcbiAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIHVwZGF0aW5nIGhhc2hcIilcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvcGVyYXRpb24ucHJvY2Vzcyh0b0FycmF5QnVmZmVyVmlldyh0b0hhc2gpKTtcblxuICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICB9KTtcbiAgICB0aGlzLm9wZXJhdGlvbi5jYXRjaCgoKSA9PiB7fSk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLnRoZW48VWludDhBcnJheT4oXG4gICAgICBvcGVyYXRpb24gPT5cbiAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBvcGVyYXRpb24ub25jb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24ucmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobmV3IFVpbnQ4QXJyYXkob3BlcmF0aW9uLnJlc3VsdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG9wZXJhdGlvbi5maW5pc2goKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEtleVByb21pc2Uoc2VjcmV0OiBTb3VyY2VEYXRhKTogUHJvbWlzZTxLZXk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBrZXlPcGVyYXRpb24gPSAobG9jYXRlV2luZG93KCkgYXMgTXNXaW5kb3cpLm1zQ3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInJhd1wiLFxuICAgICAgdG9BcnJheUJ1ZmZlclZpZXcoc2VjcmV0KSxcbiAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIGtleU9wZXJhdGlvbi5vbmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGtleU9wZXJhdGlvbi5yZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShrZXlPcGVyYXRpb24ucmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkltcG9ydEtleSBjb21wbGV0ZWQgd2l0aG91dCBpbXBvcnRpbmcga2V5LlwiKSk7XG4gICAgfTtcbiAgICBrZXlPcGVyYXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJJbXBvcnRLZXkgZmFpbGVkIHRvIGltcG9ydCBrZXkuXCIpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlclZpZXcoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLElBQWdCO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFORCxrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQ3J5cHRvU2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYkNyeXB0b1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0U7QUFDaEUseUNBSXFCO0FBQ3JCLGtFQUEyRDtBQUUzRDtJQUlFLGdCQUFZLE1BQW1CO1FBRnZCLFdBQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3JDLElBQUEsaUNBQVksR0FBRTtxQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsRUFDdkIsNkJBQWlCLEVBQ2pCLEtBQUssRUFDTCxDQUFDLE1BQU0sQ0FBQyxDQUNUO3FCQUNBLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzNDLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQU0sR0FBTjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztnQkFDdkIsT0FBQSxJQUFBLGlDQUFZLEdBQUU7cUJBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQWlCLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFwQixDQUFvQixDQUFDO1lBRnZDLENBRXVDLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQWtCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNyQixJQUFJLENBQUM7WUFDSixPQUFBLElBQUEsaUNBQVksR0FBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFZLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQztRQUE5RCxDQUE4RCxDQUMvRDthQUNBLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQztBQXREWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuaW1wb3J0IHtcbiAgRU1QVFlfREFUQV9TSEFfMjU2LFxuICBTSEFfMjU2X0hBU0gsXG4gIFNIQV8yNTZfSE1BQ19BTEdPLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvY2F0ZVdpbmRvdyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWxvY2F0ZS13aW5kb3dcIjtcblxuZXhwb3J0IGNsYXNzIFNoYTI1NiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGtleTogUHJvbWlzZTxDcnlwdG9LZXk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvSGFzaDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDApO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMua2V5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2NhdGVXaW5kb3coKVxuICAgICAgICAgIC5jcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgICAgICAgIFwicmF3XCIsXG4gICAgICAgICAgICBjb252ZXJ0VG9CdWZmZXIoc2VjcmV0KSxcbiAgICAgICAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBbXCJzaWduXCJdXG4gICAgICAgICAgKVxuICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMua2V5LmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoZGF0YTogU291cmNlRGF0YSk6IHZvaWQge1xuICAgIGlmIChpc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IGNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICB0aGlzLnRvSGFzaC5ieXRlTGVuZ3RoICsgdXBkYXRlLmJ5dGVMZW5ndGhcbiAgICApO1xuICAgIHR5cGVkQXJyYXkuc2V0KHRoaXMudG9IYXNoLCAwKTtcbiAgICB0eXBlZEFycmF5LnNldCh1cGRhdGUsIHRoaXMudG9IYXNoLmJ5dGVMZW5ndGgpO1xuICAgIHRoaXMudG9IYXNoID0gdHlwZWRBcnJheTtcbiAgfVxuXG4gIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAodGhpcy5rZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleS50aGVuKChrZXkpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpXG4gICAgICAgICAgLmNyeXB0by5zdWJ0bGUuc2lnbihTSEFfMjU2X0hNQUNfQUxHTywga2V5LCB0aGlzLnRvSGFzaClcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5RGF0YSh0aGlzLnRvSGFzaCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoRU1QVFlfREFUQV9TSEFfMjU2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpLmNyeXB0by5zdWJ0bGUuZGlnZXN0KFNIQV8yNTZfSEFTSCwgdGhpcy50b0hhc2gpXG4gICAgICApXG4gICAgICAudGhlbigoZGF0YSkgPT4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH1cbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsMEJBQU0sR0FBTjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLElBQU0sVUFBVSxHQUFHLElBQUksUUFBUSxDQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUN2QixDQUFDO1lBRUYsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRS9DLCtEQUErRDtZQUMvRCxJQUFJLGlCQUFpQixHQUFHLHNCQUFVLElBQUksc0JBQVUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsc0JBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbkQsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzNCO2dCQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7YUFDdkI7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLHNCQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2RCxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMzQjtZQUNELFVBQVUsQ0FBQyxTQUFTLENBQ2xCLHNCQUFVLEdBQUcsQ0FBQyxFQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxFQUNwQyxJQUFJLENBQ0wsQ0FBQztZQUNGLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBRUQsc0VBQXNFO1FBQ3RFLGtDQUFrQztRQUNsQyxJQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyx5QkFBYSxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDM0MsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMvQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzlDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDL0M7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyw4QkFBVSxHQUFsQjtRQUNRLElBQUEsS0FBb0IsSUFBSSxFQUF0QixNQUFNLFlBQUEsRUFBRSxLQUFLLFdBQVMsQ0FBQztRQUUvQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ25CLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLHNCQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDakMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekIsSUFBTSxJQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFXLEVBQUUsQ0FBQztBQUVyQzs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFXLEVBQUUsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ2pDLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRTogbnVtYmVyID0gNjQ7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBESUdFU1RfTEVOR1RIOiBudW1iZXIgPSAzMjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWSA9IG5ldyBVaW50MzJBcnJheShbXG4gIDB4NDI4YTJmOTgsXG4gIDB4NzEzNzQ0OTEsXG4gIDB4YjVjMGZiY2YsXG4gIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsXG4gIDB4NTlmMTExZjEsXG4gIDB4OTIzZjgyYTQsXG4gIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsXG4gIDB4MTI4MzViMDEsXG4gIDB4MjQzMTg1YmUsXG4gIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsXG4gIDB4ODBkZWIxZmUsXG4gIDB4OWJkYzA2YTcsXG4gIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsXG4gIDB4ZWZiZTQ3ODYsXG4gIDB4MGZjMTlkYzYsXG4gIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsXG4gIDB4NGE3NDg0YWEsXG4gIDB4NWNiMGE5ZGMsXG4gIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsXG4gIDB4YTgzMWM2NmQsXG4gIDB4YjAwMzI3YzgsXG4gIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsXG4gIDB4ZDVhNzkxNDcsXG4gIDB4MDZjYTYzNTEsXG4gIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsXG4gIDB4MmUxYjIxMzgsXG4gIDB4NGQyYzZkZmMsXG4gIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsXG4gIDB4NzY2YTBhYmIsXG4gIDB4ODFjMmM5MmUsXG4gIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsXG4gIDB4YTgxYTY2NGIsXG4gIDB4YzI0YjhiNzAsXG4gIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksXG4gIDB4ZDY5OTA2MjQsXG4gIDB4ZjQwZTM1ODUsXG4gIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsXG4gIDB4MWUzNzZjMDgsXG4gIDB4Mjc0ODc3NGMsXG4gIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsXG4gIDB4NGVkOGFhNGEsXG4gIDB4NWI5Y2NhNGYsXG4gIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsXG4gIDB4NzhhNTYzNmYsXG4gIDB4ODRjODc4MTQsXG4gIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsXG4gIDB4YTQ1MDZjZWIsXG4gIDB4YmVmOWEzZjcsXG4gIDB4YzY3MTc4ZjJcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFtcbiAgMHg2YTA5ZTY2NyxcbiAgMHhiYjY3YWU4NSxcbiAgMHgzYzZlZjM3MixcbiAgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZixcbiAgMHg5YjA1Njg4YyxcbiAgMHgxZjgzZDlhYixcbiAgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9IQVNIQUJMRV9MRU5HVEggPSAyICoqIDUzIC0gMTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vanNTaGEyNTZcIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNTaGEyNTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNTaGEyNTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUF5QztBQUN6Qyx5Q0FBd0M7QUFFeEMseUNBQWdFO0FBRWhFO0lBS0UsZ0JBQVksTUFBbUI7UUFKZCxTQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFLdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQzdCLElBQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIscUNBQXFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sTUFBa0I7UUFDdkIsSUFBSSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csdUJBQU0sR0FBWjs7O2dCQUNFLHNCQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQzs7O0tBQzFCO0lBQ0gsYUFBQztBQUFELENBQUMsQUFsRUQsSUFrRUM7QUFsRVksd0JBQU07QUFvRW5CLFNBQVMsZ0JBQWdCLENBQUMsTUFBa0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxzQkFBVSxFQUFFO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSYXdTaGEyNTYgfSBmcm9tIFwiLi9SYXdTaGEyNTZcIjtcbmltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU2hhMjU2IGltcGxlbWVudHMgSGFzaCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzaCA9IG5ldyBSYXdTaGEyNTYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRlcj86IFJhd1NoYTI1NjtcbiAgcHJpdmF0ZSBlcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICB0aGlzLm91dGVyID0gbmV3IFJhd1NoYTI1NigpO1xuICAgICAgY29uc3QgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KHNlY3JldCk7XG4gICAgICBjb25zdCBvdXRlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICAgICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaW5uZXJbaV0gXj0gMHgzNjtcbiAgICAgICAgb3V0ZXJbaV0gXj0gMHg1YztcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXRlcik7XG5cbiAgICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29waWVkIGtleSBpbiBtZW1vcnlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmhhc2gudXBkYXRlKGNvbnZlcnRUb0J1ZmZlcih0b0hhc2gpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG4gIH1cblxuICAvKiBUaGlzIHN5bmNocm9ub3VzIG1ldGhvZCBrZWVwcyBjb21wYXRpYmlsaXR5XG4gICAqIHdpdGggdGhlIHYyIGF3cy1zZGsuXG4gICAqL1xuICBkaWdlc3RTeW5jKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGVyKSB7XG4gICAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIC8qIFRoZSB1bmRlcmx5aW5nIGRpZ2VzdCBtZXRob2QgaGVyZSBpcyBzeW5jaHJvbm91cy5cbiAgICogVG8ga2VlcCB0aGUgc2FtZSBpbnRlcmZhY2Ugd2l0aCB0aGUgb3RoZXIgaGFzaCBmdW5jdGlvbnNcbiAgICogdGhlIGRlZmF1bHQgaXMgdG8gZXhwb3NlIHRoaXMgYXMgYW4gYXN5bmMgbWV0aG9kLlxuICAgKiBIb3dldmVyLCBpdCBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1bCB0byBoYXZlIGEgc3luYyBtZXRob2QuXG4gICAqL1xuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0U3luYygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoc2VjcmV0OiBTb3VyY2VEYXRhKTogVWludDhBcnJheSB7XG4gIGxldCBpbnB1dCA9IGNvbnZlcnRUb0J1ZmZlcihzZWNyZXQpO1xuXG4gIGlmIChpbnB1dC5ieXRlTGVuZ3RoID4gQkxPQ0tfU0laRSkge1xuICAgIGNvbnN0IGJ1ZmZlckhhc2ggPSBuZXcgUmF3U2hhMjU2KCk7XG4gICAgYnVmZmVySGFzaC51cGRhdGUoaW5wdXQpO1xuICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICBidWZmZXIuc2V0KGlucHV0KTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VwcG9ydHNXZWJDcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsSUFDRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQ3hDO1FBQ1EsSUFBQSxNQUFNLEdBQUssTUFBTSxDQUFDLE1BQU0sT0FBbEIsQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsZUFBZSxHQUFLLE1BQU0sQ0FBQyxNQUFNLGdCQUFsQixDQUFtQjtRQUUxQyxPQUFPLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQztLQUM5QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVJELG9EQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxDQUNMLE1BQU07UUFDTixtQkFBbUIsQ0FBQyxLQUFLLENBQ3ZCLFVBQUEsVUFBVSxJQUFJLE9BQUEsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUF4QyxDQUF3QyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsb0RBT0M7QUFFRCxTQUFzQixtQkFBbUIsQ0FBQyxNQUFvQjs7Ozs7O29CQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUFFLHNCQUFPLEtBQUssRUFBQzs7OztvQkFFbEMscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsU0FBUyxDQUFDLENBQ1osRUFBQTs7b0JBSkssR0FBRyxHQUFHLFNBSVg7b0JBQ3VCLHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQzFDOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLEVBQUUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzdCLGNBQWMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFNBQVMsRUFBRSxHQUFHO3lCQUNmLEVBQ0QsR0FBRyxFQUNILElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUNsQixFQUFBOztvQkFUSyxlQUFlLEdBQUcsU0FTdkI7b0JBQ0Qsc0JBQU8sZUFBZSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUM7OztvQkFFekMsc0JBQU8sS0FBSyxFQUFDOzs7OztDQUVoQjtBQXRCRCxrREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN1YnRsZUNyeXB0b01ldGhvZCA9XG4gIHwgXCJkZWNyeXB0XCJcbiAgfCBcImRpZ2VzdFwiXG4gIHwgXCJlbmNyeXB0XCJcbiAgfCBcImV4cG9ydEtleVwiXG4gIHwgXCJnZW5lcmF0ZUtleVwiXG4gIHwgXCJpbXBvcnRLZXlcIlxuICB8IFwic2lnblwiXG4gIHwgXCJ2ZXJpZnlcIjtcblxuY29uc3Qgc3VidGxlQ3J5cHRvTWV0aG9kczogQXJyYXk8U3VidGxlQ3J5cHRvTWV0aG9kPiA9IFtcbiAgXCJkZWNyeXB0XCIsXG4gIFwiZGlnZXN0XCIsXG4gIFwiZW5jcnlwdFwiLFxuICBcImV4cG9ydEtleVwiLFxuICBcImdlbmVyYXRlS2V5XCIsXG4gIFwiaW1wb3J0S2V5XCIsXG4gIFwic2lnblwiLFxuICBcInZlcmlmeVwiXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJDcnlwdG8od2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdykgJiZcbiAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5zdWJ0bGUgPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgeyBzdWJ0bGUgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB3aW5kb3cuY3J5cHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgeyBnZXRSYW5kb21WYWx1ZXMgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhbmRvbVZhbHVlcyA9PT0gXCJmdW5jdGlvblwiO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlOiBTdWJ0bGVDcnlwdG8pIHtcbiAgcmV0dXJuIChcbiAgICBzdWJ0bGUgJiZcbiAgICBzdWJ0bGVDcnlwdG9NZXRob2RzLmV2ZXJ5KFxuICAgICAgbWV0aG9kTmFtZSA9PiB0eXBlb2Ygc3VidGxlW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdXBwb3J0c1plcm9CeXRlR0NNKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIGlmICghc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleShcbiAgICAgIHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMTI4IH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuICAgIGNvbnN0IHplcm9CeXRlQXV0aFRhZyA9IGF3YWl0IHN1YnRsZS5lbmNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFFUy1HQ01cIixcbiAgICAgICAgaXY6IG5ldyBVaW50OEFycmF5KEFycmF5KDEyKSksXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBuZXcgVWludDhBcnJheShBcnJheSgxNikpLFxuICAgICAgICB0YWdMZW5ndGg6IDEyOFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIG5ldyBVaW50OEFycmF5KDApXG4gICAgKTtcbiAgICByZXR1cm4gemVyb0J5dGVBdXRoVGFnLmJ5dGVMZW5ndGggPT09IDE2O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=convertToBuffer.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=isEmptyData.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=numToUint8.js.map","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Uint32Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n a_index += 1;\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=uint32ArrayFrom.js.map","import { __assign, __read, __spreadArray } from \"tslib\";\nvar HttpRequest = (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? \"\".concat(options.protocol, \":\")\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\".concat(options.path) : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param), false) : param, _a));\n }, {});\n}\n","var HttpResponse = (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n","export function isValidHostname(hostname) {\n var hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","import { __assign, __read, __spreadArray, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry)), false));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry)), false));\n }\n });\n return expandedMiddlewareList;\n };\n var getMiddlewareList = function (debug) {\n if (debug === void 0) { debug = false; }\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(\"\".concat(entry.toMiddleware, \" is not found when adding \").concat(entry.name || \"anonymous\", \" middleware \").concat(entry.relation, \" \").concat(entry.toMiddleware));\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n wholeList.push.apply(wholeList, __spreadArray([], __read(expendedMiddlewareList), false));\n return wholeList;\n }, []);\n return mainChain;\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\".concat(name, \"'\"));\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\".concat(name, \"\\\" middleware with \").concat(toOverride.priority, \" priority in \").concat(toOverride.step, \" step cannot be \") +\n \"overridden by same-name middleware with \".concat(entry.priority, \" priority in \").concat(entry.step, \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\".concat(name, \"'\"));\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\".concat(name, \"\\\" middleware \").concat(toOverride.relation, \" \\\"\").concat(toOverride.toMiddleware, \"\\\" middleware cannot be overridden \") +\n \"by same-name middleware \".concat(entry.relation, \" \\\"\").concat(entry.toMiddleware, \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: function () {\n return getMiddlewareList(true).map(function (mw) {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList()\n .map(function (entry) { return entry.middleware; })\n .reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n","import { __read } from \"tslib\";\nexport var parseBoolean = function (value) {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(\"Unable to parse boolean value \\\"\".concat(value, \"\\\"\"));\n }\n};\nexport var expectBoolean = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(\"Expected boolean, got \".concat(typeof value, \": \").concat(value)));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n var lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(\"Expected boolean, got \".concat(typeof value, \": \").concat(value)));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(\"Expected boolean, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectNumber = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n var parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(\"Expected number but observed string: \".concat(value)));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(\"Expected number, got \".concat(typeof value, \": \").concat(value));\n};\nvar MAX_FLOAT = Math.ceil(Math.pow(2, 127) * (2 - Math.pow(2, -23)));\nexport var expectFloat32 = function (value) {\n var expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(\"Expected 32-bit float, got \".concat(value));\n }\n }\n return expected;\n};\nexport var expectLong = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(\"Expected integer, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectInt = expectLong;\nexport var expectInt32 = function (value) { return expectSizedInt(value, 32); };\nexport var expectShort = function (value) { return expectSizedInt(value, 16); };\nexport var expectByte = function (value) { return expectSizedInt(value, 8); };\nvar expectSizedInt = function (value, size) {\n var expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(\"Expected \".concat(size, \"-bit integer, got \").concat(value));\n }\n return expected;\n};\nvar castInt = function (value, size) {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport var expectNonNull = function (value, location) {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(\"Expected a non-null value for \".concat(location));\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport var expectObject = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n var receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(\"Expected object, got \".concat(receivedType, \": \").concat(value));\n};\nexport var expectString = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(\"Expected string, got \".concat(typeof value, \": \").concat(value)));\n return String(value);\n }\n throw new TypeError(\"Expected string, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectUnion = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n var asObject = expectObject(value);\n var setKeys = Object.entries(asObject)\n .filter(function (_a) {\n var _b = __read(_a, 2), v = _b[1];\n return v != null;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k;\n });\n if (setKeys.length === 0) {\n throw new TypeError(\"Unions must have exactly one non-null member. None were found.\");\n }\n if (setKeys.length > 1) {\n throw new TypeError(\"Unions must have exactly one non-null member. Keys \".concat(setKeys, \" were not null.\"));\n }\n return asObject;\n};\nexport var strictParseDouble = function (value) {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport var strictParseFloat = strictParseDouble;\nexport var strictParseFloat32 = function (value) {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nvar NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nvar parseNumber = function (value) {\n var matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(\"Expected real number, got implicit NaN\");\n }\n return parseFloat(value);\n};\nexport var limitedParseDouble = function (value) {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport var handleFloat = limitedParseDouble;\nexport var limitedParseFloat = limitedParseDouble;\nexport var limitedParseFloat32 = function (value) {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nvar parseFloatString = function (value) {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(\"Unable to parse float value: \".concat(value));\n }\n};\nexport var strictParseLong = function (value) {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport var strictParseInt = strictParseLong;\nexport var strictParseInt32 = function (value) {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport var strictParseShort = function (value) {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport var strictParseByte = function (value) {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nvar stackTraceWarning = function (message) {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter(function (s) { return !s.includes(\"stackTraceWarning\"); })\n .join(\"\\n\");\n};\nexport var logger = {\n warn: console.warn,\n};\n","import { __read } from \"tslib\";\nimport { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nvar DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nvar MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n var year = date.getUTCFullYear();\n var month = date.getUTCMonth();\n var dayOfWeek = date.getUTCDay();\n var dayOfMonthInt = date.getUTCDate();\n var hoursInt = date.getUTCHours();\n var minutesInt = date.getUTCMinutes();\n var secondsInt = date.getUTCSeconds();\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\".concat(dayOfMonthInt) : \"\".concat(dayOfMonthInt);\n var hoursString = hoursInt < 10 ? \"0\".concat(hoursInt) : \"\".concat(hoursInt);\n var minutesString = minutesInt < 10 ? \"0\".concat(minutesInt) : \"\".concat(minutesInt);\n var secondsString = secondsInt < 10 ? \"0\".concat(secondsInt) : \"\".concat(secondsInt);\n return \"\".concat(DAYS[dayOfWeek], \", \").concat(dayOfMonthString, \" \").concat(MONTHS[month], \" \").concat(year, \" \").concat(hoursString, \":\").concat(minutesString, \":\").concat(secondsString, \" GMT\");\n}\nvar RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport var parseRfc3339DateTime = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n var match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n var _a = __read(match, 8), _ = _a[0], yearStr = _a[1], monthStr = _a[2], dayStr = _a[3], hours = _a[4], minutes = _a[5], seconds = _a[6], fractionalMilliseconds = _a[7];\n var year = strictParseShort(stripLeadingZeroes(yearStr));\n var month = parseDateValue(monthStr, \"month\", 1, 12);\n var day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n};\nvar IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nvar RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nvar ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport var parseRfc7231DateTime = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n var match = IMF_FIXDATE.exec(value);\n if (match) {\n var _a = __read(match, 8), _1 = _a[0], dayStr = _a[1], monthStr = _a[2], yearStr = _a[3], hours = _a[4], minutes = _a[5], seconds = _a[6], fractionalMilliseconds = _a[7];\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n var _b = __read(match, 8), _2 = _b[0], dayStr = _b[1], monthStr = _b[2], yearStr = _b[3], hours = _b[4], minutes = _b[5], seconds = _b[6], fractionalMilliseconds = _b[7];\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n fractionalMilliseconds: fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n var _c = __read(match, 8), _3 = _c[0], monthStr = _c[1], dayStr = _c[2], hours = _c[3], minutes = _c[4], seconds = _c[5], fractionalMilliseconds = _c[6], yearStr = _c[7];\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport var parseEpochTimestamp = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n var valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nvar buildDate = function (year, month, day, time) {\n var adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nvar parseTwoDigitYear = function (value) {\n var thisYear = new Date().getUTCFullYear();\n var valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nvar FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nvar adjustRfc850Year = function (input) {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nvar parseMonthByShortName = function (value) {\n var monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(\"Invalid month: \".concat(value));\n }\n return monthIdx + 1;\n};\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar validateDayOfMonth = function (year, month, day) {\n var maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(\"Invalid day for \".concat(MONTHS[month], \" in \").concat(year, \": \").concat(day));\n }\n};\nvar isLeapYear = function (year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nvar parseDateValue = function (value, type, lower, upper) {\n var dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(\"\".concat(type, \" must be between \").concat(lower, \" and \").concat(upper, \", inclusive\"));\n }\n return dateVal;\n};\nvar parseMilliseconds = function (value) {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nvar stripLeadingZeroes = function (value) {\n var idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","import { __extends, __read } from \"tslib\";\nvar ServiceException = (function (_super) {\n __extends(ServiceException, _super);\n function ServiceException(options) {\n var _this = _super.call(this, options.message) || this;\n Object.setPrototypeOf(_this, ServiceException.prototype);\n _this.name = options.name;\n _this.$fault = options.$fault;\n _this.$metadata = options.$metadata;\n return _this;\n }\n return ServiceException;\n}(Error));\nexport { ServiceException };\nexport var decorateServiceException = function (exception, additions) {\n if (additions === void 0) { additions = {}; }\n Object.entries(additions)\n .filter(function (_a) {\n var _b = __read(_a, 2), v = _b[1];\n return v !== undefined;\n })\n .forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n var message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport var throwDefaultError = function (_a) {\n var output = _a.output, parsedBody = _a.parsedBody, exceptionCtor = _a.exceptionCtor, errorCode = _a.errorCode;\n var $metadata = deserializeMetadata(output);\n var statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n var response = new exceptionCtor({\n name: parsedBody.code || parsedBody.Code || errorCode || statusCode || \"UnknowError\",\n $fault: \"client\",\n $metadata: $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n","export var loadConfigsForDefaultMode = function (mode) {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","import { __extends, __read, __spreadArray } from \"tslib\";\nexport var StringWrapper = function () {\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spreadArray([null], __read(arguments), false));\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n","import { __read, __values } from \"tslib\";\nexport function map(arg0, arg1, arg2) {\n var e_1, _a;\n var target;\n var filter;\n var instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n try {\n for (var _b = __values(Object.keys(instructions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n var _d = __read(instructions[key], 2), filter_1 = _d[0], value = _d[1];\n if (typeof value === \"function\") {\n var _value = void 0;\n var defaultFilterPassed = filter_1 === undefined && (_value = value()) != null;\n var customFilterPassed = (typeof filter_1 === \"function\" && !!filter_1(void 0)) || (typeof filter_1 !== \"function\" && !!filter_1);\n if (defaultFilterPassed) {\n target[key] = _value;\n }\n else if (customFilterPassed) {\n target[key] = value();\n }\n }\n else {\n var defaultFilterPassed = filter_1 === undefined && value != null;\n var customFilterPassed = (typeof filter_1 === \"function\" && !!filter_1(value)) || (typeof filter_1 !== \"function\" && !!filter_1);\n if (defaultFilterPassed || customFilterPassed) {\n target[key] = value;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return target;\n}\nexport var convertMap = function (target) {\n var e_2, _a;\n var output = {};\n try {\n for (var _b = __values(Object.entries(target || {})), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n output[k] = [, v];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return output;\n};\nvar mapWithFilter = function (target, filter, instructions) {\n return map(target, Object.entries(instructions).reduce(function (_instructions, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport var resolvedPath = function (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n if (input != null && input[memberName] !== undefined) {\n var labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map(function (segment) { return extendedEncodeURIComponent(segment); })\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","export var serializeFloat = function (value) {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzX2NyYzMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F3c19jcmMzMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7OztBQUd0Qyx5Q0FBNEU7QUFDNUUsaUNBQWdDO0FBRWhDO0lBQUE7UUFDbUIsVUFBSyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7SUFXdkMsQ0FBQztJQVRDLHlCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUN2QixJQUFJLElBQUEsa0JBQVcsRUFBQyxNQUFNLENBQUM7WUFBRSxPQUFPO1FBRWhDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFSyx5QkFBTSxHQUFaOzs7Z0JBQ0Usc0JBQU8sSUFBQSxpQkFBVSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBQzs7O0tBQ3hDO0lBQ0gsZUFBQztBQUFELENBQUMsQUFaRCxJQVlDO0FBWlksNEJBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgSGFzaCwgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydFRvQnVmZmVyLCBpc0VtcHR5RGF0YSwgbnVtVG9VaW50OCB9IGZyb20gXCJAYXdzLWNyeXB0by91dGlsXCI7XG5pbXBvcnQgeyBDcmMzMiB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmV4cG9ydCBjbGFzcyBBd3NDcmMzMiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGNyYzMyID0gbmV3IENyYzMyKCk7XG5cbiAgdXBkYXRlKHRvSGFzaDogU291cmNlRGF0YSkge1xuICAgIGlmIChpc0VtcHR5RGF0YSh0b0hhc2gpKSByZXR1cm47XG5cbiAgICB0aGlzLmNyYzMyLnVwZGF0ZShjb252ZXJ0VG9CdWZmZXIodG9IYXNoKSk7XG4gIH1cblxuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIG51bVRvVWludDgodGhpcy5jcmMzMi5kaWdlc3QoKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = (0, tslib_1.__values)(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUFpRDtBQUVqRCxTQUFnQixLQUFLLENBQUMsSUFBZ0I7SUFDcEMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsc0JBRUM7QUFFRDtJQUFBO1FBQ1UsYUFBUSxHQUFHLFVBQVUsQ0FBQztJQWNoQyxDQUFDO0lBWkMsc0JBQU0sR0FBTixVQUFPLElBQWdCOzs7WUFDckIsS0FBbUIsSUFBQSxTQUFBLHNCQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtnQkFBcEIsSUFBTSxJQUFJLGlCQUFBO2dCQUNiLElBQUksQ0FBQyxRQUFRO29CQUNYLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3RFOzs7Ozs7Ozs7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxzQkFBTSxHQUFOO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQWZELElBZUM7QUFmWSxzQkFBSztBQWlCbEIsa0JBQWtCO0FBQ2xCLElBQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7Q0FDL0MsQ0FBQztBQUNGLElBQU0sV0FBVyxHQUFnQixJQUFBLHNCQUFlLEVBQUMsYUFBYSxDQUFDLENBQUE7QUFDL0QseUNBQXVDO0FBQTlCLHFHQUFBLFFBQVEsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JjMzIoZGF0YTogVWludDhBcnJheSk6IG51bWJlciB7XG4gIHJldHVybiBuZXcgQ3JjMzIoKS51cGRhdGUoZGF0YSkuZGlnZXN0KCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDcmMzMiB7XG4gIHByaXZhdGUgY2hlY2tzdW0gPSAweGZmZmZmZmZmO1xuXG4gIHVwZGF0ZShkYXRhOiBVaW50OEFycmF5KTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBieXRlIG9mIGRhdGEpIHtcbiAgICAgIHRoaXMuY2hlY2tzdW0gPVxuICAgICAgICAodGhpcy5jaGVja3N1bSA+Pj4gOCkgXiBsb29rdXBUYWJsZVsodGhpcy5jaGVja3N1bSBeIGJ5dGUpICYgMHhmZl07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkaWdlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuY2hlY2tzdW0gXiAweGZmZmZmZmZmKSA+Pj4gMDtcbiAgfVxufVxuXG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IGFfbG9va1VwVGFibGUgPSBbXG4gIDB4MDAwMDAwMDAsIDB4NzcwNzMwOTYsIDB4RUUwRTYxMkMsIDB4OTkwOTUxQkEsXG4gIDB4MDc2REM0MTksIDB4NzA2QUY0OEYsIDB4RTk2M0E1MzUsIDB4OUU2NDk1QTMsXG4gIDB4MEVEQjg4MzIsIDB4NzlEQ0I4QTQsIDB4RTBENUU5MUUsIDB4OTdEMkQ5ODgsXG4gIDB4MDlCNjRDMkIsIDB4N0VCMTdDQkQsIDB4RTdCODJEMDcsIDB4OTBCRjFEOTEsXG4gIDB4MURCNzEwNjQsIDB4NkFCMDIwRjIsIDB4RjNCOTcxNDgsIDB4ODRCRTQxREUsXG4gIDB4MUFEQUQ0N0QsIDB4NkREREU0RUIsIDB4RjRENEI1NTEsIDB4ODNEMzg1QzcsXG4gIDB4MTM2Qzk4NTYsIDB4NjQ2QkE4QzAsIDB4RkQ2MkY5N0EsIDB4OEE2NUM5RUMsXG4gIDB4MTQwMTVDNEYsIDB4NjMwNjZDRDksIDB4RkEwRjNENjMsIDB4OEQwODBERjUsXG4gIDB4M0I2RTIwQzgsIDB4NEM2OTEwNUUsIDB4RDU2MDQxRTQsIDB4QTI2NzcxNzIsXG4gIDB4M0MwM0U0RDEsIDB4NEIwNEQ0NDcsIDB4RDIwRDg1RkQsIDB4QTUwQUI1NkIsXG4gIDB4MzVCNUE4RkEsIDB4NDJCMjk4NkMsIDB4REJCQkM5RDYsIDB4QUNCQ0Y5NDAsXG4gIDB4MzJEODZDRTMsIDB4NDVERjVDNzUsIDB4RENENjBEQ0YsIDB4QUJEMTNENTksXG4gIDB4MjZEOTMwQUMsIDB4NTFERTAwM0EsIDB4QzhENzUxODAsIDB4QkZEMDYxMTYsXG4gIDB4MjFCNEY0QjUsIDB4NTZCM0M0MjMsIDB4Q0ZCQTk1OTksIDB4QjhCREE1MEYsXG4gIDB4MjgwMkI4OUUsIDB4NUYwNTg4MDgsIDB4QzYwQ0Q5QjIsIDB4QjEwQkU5MjQsXG4gIDB4MkY2RjdDODcsIDB4NTg2ODRDMTEsIDB4QzE2MTFEQUIsIDB4QjY2NjJEM0QsXG4gIDB4NzZEQzQxOTAsIDB4MDFEQjcxMDYsIDB4OThEMjIwQkMsIDB4RUZENTEwMkEsXG4gIDB4NzFCMTg1ODksIDB4MDZCNkI1MUYsIDB4OUZCRkU0QTUsIDB4RThCOEQ0MzMsXG4gIDB4NzgwN0M5QTIsIDB4MEYwMEY5MzQsIDB4OTYwOUE4OEUsIDB4RTEwRTk4MTgsXG4gIDB4N0Y2QTBEQkIsIDB4MDg2RDNEMkQsIDB4OTE2NDZDOTcsIDB4RTY2MzVDMDEsXG4gIDB4NkI2QjUxRjQsIDB4MUM2QzYxNjIsIDB4ODU2NTMwRDgsIDB4RjI2MjAwNEUsXG4gIDB4NkMwNjk1RUQsIDB4MUIwMUE1N0IsIDB4ODIwOEY0QzEsIDB4RjUwRkM0NTcsXG4gIDB4NjVCMEQ5QzYsIDB4MTJCN0U5NTAsIDB4OEJCRUI4RUEsIDB4RkNCOTg4N0MsXG4gIDB4NjJERDFEREYsIDB4MTVEQTJENDksIDB4OENEMzdDRjMsIDB4RkJENDRDNjUsXG4gIDB4NERCMjYxNTgsIDB4M0FCNTUxQ0UsIDB4QTNCQzAwNzQsIDB4RDRCQjMwRTIsXG4gIDB4NEFERkE1NDEsIDB4M0REODk1RDcsIDB4QTREMUM0NkQsIDB4RDNENkY0RkIsXG4gIDB4NDM2OUU5NkEsIDB4MzQ2RUQ5RkMsIDB4QUQ2Nzg4NDYsIDB4REE2MEI4RDAsXG4gIDB4NDQwNDJENzMsIDB4MzMwMzFERTUsIDB4QUEwQTRDNUYsIDB4REQwRDdDQzksXG4gIDB4NTAwNTcxM0MsIDB4MjcwMjQxQUEsIDB4QkUwQjEwMTAsIDB4QzkwQzIwODYsXG4gIDB4NTc2OEI1MjUsIDB4MjA2Rjg1QjMsIDB4Qjk2NkQ0MDksIDB4Q0U2MUU0OUYsXG4gIDB4NUVERUY5MEUsIDB4MjlEOUM5OTgsIDB4QjBEMDk4MjIsIDB4QzdEN0E4QjQsXG4gIDB4NTlCMzNEMTcsIDB4MkVCNDBEODEsIDB4QjdCRDVDM0IsIDB4QzBCQTZDQUQsXG4gIDB4RURCODgzMjAsIDB4OUFCRkIzQjYsIDB4MDNCNkUyMEMsIDB4NzRCMUQyOUEsXG4gIDB4RUFENTQ3MzksIDB4OUREMjc3QUYsIDB4MDREQjI2MTUsIDB4NzNEQzE2ODMsXG4gIDB4RTM2MzBCMTIsIDB4OTQ2NDNCODQsIDB4MEQ2RDZBM0UsIDB4N0E2QTVBQTgsXG4gIDB4RTQwRUNGMEIsIDB4OTMwOUZGOUQsIDB4MEEwMEFFMjcsIDB4N0QwNzlFQjEsXG4gIDB4RjAwRjkzNDQsIDB4ODcwOEEzRDIsIDB4MUUwMUYyNjgsIDB4NjkwNkMyRkUsXG4gIDB4Rjc2MjU3NUQsIDB4ODA2NTY3Q0IsIDB4MTk2QzM2NzEsIDB4NkU2QjA2RTcsXG4gIDB4RkVENDFCNzYsIDB4ODlEMzJCRTAsIDB4MTBEQTdBNUEsIDB4NjdERDRBQ0MsXG4gIDB4RjlCOURGNkYsIDB4OEVCRUVGRjksIDB4MTdCN0JFNDMsIDB4NjBCMDhFRDUsXG4gIDB4RDZENkEzRTgsIDB4QTFEMTkzN0UsIDB4MzhEOEMyQzQsIDB4NEZERkYyNTIsXG4gIDB4RDFCQjY3RjEsIDB4QTZCQzU3NjcsIDB4M0ZCNTA2REQsIDB4NDhCMjM2NEIsXG4gIDB4RDgwRDJCREEsIDB4QUYwQTFCNEMsIDB4MzYwMzRBRjYsIDB4NDEwNDdBNjAsXG4gIDB4REY2MEVGQzMsIDB4QTg2N0RGNTUsIDB4MzE2RThFRUYsIDB4NDY2OUJFNzksXG4gIDB4Q0I2MUIzOEMsIDB4QkM2NjgzMUEsIDB4MjU2RkQyQTAsIDB4NTI2OEUyMzYsXG4gIDB4Q0MwQzc3OTUsIDB4QkIwQjQ3MDMsIDB4MjIwMjE2QjksIDB4NTUwNTI2MkYsXG4gIDB4QzVCQTNCQkUsIDB4QjJCRDBCMjgsIDB4MkJCNDVBOTIsIDB4NUNCMzZBMDQsXG4gIDB4QzJEN0ZGQTcsIDB4QjVEMENGMzEsIDB4MkNEOTlFOEIsIDB4NUJERUFFMUQsXG4gIDB4OUI2NEMyQjAsIDB4RUM2M0YyMjYsIDB4NzU2QUEzOUMsIDB4MDI2RDkzMEEsXG4gIDB4OUMwOTA2QTksIDB4RUIwRTM2M0YsIDB4NzIwNzY3ODUsIDB4MDUwMDU3MTMsXG4gIDB4OTVCRjRBODIsIDB4RTJCODdBMTQsIDB4N0JCMTJCQUUsIDB4MENCNjFCMzgsXG4gIDB4OTJEMjhFOUIsIDB4RTVENUJFMEQsIDB4N0NEQ0VGQjcsIDB4MEJEQkRGMjEsXG4gIDB4ODZEM0QyRDQsIDB4RjFENEUyNDIsIDB4NjhEREIzRjgsIDB4MUZEQTgzNkUsXG4gIDB4ODFCRTE2Q0QsIDB4RjZCOTI2NUIsIDB4NkZCMDc3RTEsIDB4MThCNzQ3NzcsXG4gIDB4ODgwODVBRTYsIDB4RkYwRjZBNzAsIDB4NjYwNjNCQ0EsIDB4MTEwMTBCNUMsXG4gIDB4OEY2NTlFRkYsIDB4Rjg2MkFFNjksIDB4NjE2QkZGRDMsIDB4MTY2Q0NGNDUsXG4gIDB4QTAwQUUyNzgsIDB4RDcwREQyRUUsIDB4NEUwNDgzNTQsIDB4MzkwM0IzQzIsXG4gIDB4QTc2NzI2NjEsIDB4RDA2MDE2RjcsIDB4NDk2OTQ3NEQsIDB4M0U2RTc3REIsXG4gIDB4QUVEMTZBNEEsIDB4RDlENjVBREMsIDB4NDBERjBCNjYsIDB4MzdEODNCRjAsXG4gIDB4QTlCQ0FFNTMsIDB4REVCQjlFQzUsIDB4NDdCMkNGN0YsIDB4MzBCNUZGRTksXG4gIDB4QkRCREYyMUMsIDB4Q0FCQUMyOEEsIDB4NTNCMzkzMzAsIDB4MjRCNEEzQTYsXG4gIDB4QkFEMDM2MDUsIDB4Q0RENzA2OTMsIDB4NTRERTU3MjksIDB4MjNEOTY3QkYsXG4gIDB4QjM2NjdBMkUsIDB4QzQ2MTRBQjgsIDB4NUQ2ODFCMDIsIDB4MkE2RjJCOTQsXG4gIDB4QjQwQkJFMzcsIDB4QzMwQzhFQTEsIDB4NUEwNURGMUIsIDB4MkQwMkVGOEQsXG5dO1xuY29uc3QgbG9va3VwVGFibGU6IFVpbnQzMkFycmF5ID0gdWludDMyQXJyYXlGcm9tKGFfbG9va1VwVGFibGUpXG5leHBvcnQgeyBBd3NDcmMzMiB9IGZyb20gXCIuL2F3c19jcmMzMlwiO1xuIl19","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydFRvQnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRUb0J1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBR3RDLGdFQUF5RTtBQUV6RSxpQkFBaUI7QUFDakIsSUFBTSxRQUFRLEdBQ1osT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJO0lBQzFDLENBQUMsQ0FBQyxVQUFDLEtBQWEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUExQixDQUEwQjtJQUMvQyxDQUFDLENBQUMsNEJBQWUsQ0FBQztBQUV0QixTQUFnQixlQUFlLENBQUMsSUFBZ0I7SUFDOUMsOEJBQThCO0lBQzlCLElBQUksSUFBSSxZQUFZLFVBQVU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUU1QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZnJvbVV0ZjggYXMgZnJvbVV0ZjhCcm93c2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXRmOC1icm93c2VyXCI7XG5cbi8vIFF1aWNrIHBvbHlmaWxsXG5jb25zdCBmcm9tVXRmOCA9XG4gIHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgQnVmZmVyLmZyb21cbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBCdWZmZXIuZnJvbShpbnB1dCwgXCJ1dGY4XCIpXG4gICAgOiBmcm9tVXRmOEJyb3dzZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICAvLyBBbHJlYWR5IGEgVWludDgsIGRvIG5vdGhpbmdcbiAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gZGF0YTtcblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQixxREFBa0Q7QUFBMUMsa0hBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7IGNvbnZlcnRUb0J1ZmZlciB9IGZyb20gXCIuL2NvbnZlcnRUb0J1ZmZlclwiO1xuZXhwb3J0IHsgaXNFbXB0eURhdGEgfSBmcm9tIFwiLi9pc0VtcHR5RGF0YVwiO1xuZXhwb3J0IHsgbnVtVG9VaW50OCB9IGZyb20gXCIuL251bVRvVWludDhcIjtcbmV4cG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tICcuL3VpbnQzMkFycmF5RnJvbSc7XG4iXX0=","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUl0QyxTQUFnQixXQUFXLENBQUMsSUFBZ0I7SUFDMUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQU5ELGtDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtVG9VaW50OC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udW1Ub1VpbnQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUNwQixDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3hCLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEdBQUcsVUFBVTtLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUEQsZ0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IGZ1bmN0aW9uIG51bVRvVWludDgobnVtOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFtcbiAgICAobnVtICYgMHhmZjAwMDAwMCkgPj4gMjQsXG4gICAgKG51bSAmIDB4MDBmZjAwMDApID4+IDE2LFxuICAgIChudW0gJiAweDAwMDBmZjAwKSA+PiA4LFxuICAgIG51bSAmIDB4MDAwMDAwZmYsXG4gIF0pO1xufVxuIl19","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWludDMyQXJyYXlGcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VpbnQzMkFycmF5RnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBRXRDLDBEQUEwRDtBQUMxRCxTQUFnQixlQUFlLENBQUMsYUFBNEI7SUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDZixJQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9DO1FBQ0QsT0FBTyxZQUFZLENBQUE7S0FDcEI7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQVZELDBDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIElFIDExIGRvZXMgbm90IHN1cHBvcnQgQXJyYXkuZnJvbSwgc28gd2UgZG8gaXQgbWFudWFsbHlcbmV4cG9ydCBmdW5jdGlvbiB1aW50MzJBcnJheUZyb20oYV9sb29rVXBUYWJsZTogQXJyYXk8bnVtYmVyPik6IFVpbnQzMkFycmF5IHtcbiAgaWYgKCFBcnJheS5mcm9tKSB7XG4gICAgY29uc3QgcmV0dXJuX2FycmF5ID0gbmV3IFVpbnQzMkFycmF5KGFfbG9va1VwVGFibGUubGVuZ3RoKVxuICAgIGxldCBhX2luZGV4ID0gMFxuICAgIHdoaWxlIChhX2luZGV4IDwgYV9sb29rVXBUYWJsZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybl9hcnJheVthX2luZGV4XSA9IGFfbG9va1VwVGFibGVbYV9pbmRleF1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl9hcnJheVxuICB9XG4gIHJldHVybiBVaW50MzJBcnJheS5mcm9tKGFfbG9va1VwVGFibGUpXG59XG4iXX0=","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var HttpResponse = /** @class */ (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHBSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtJQUtFLHNCQUFZLE9BQTRCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQVUsR0FBakIsVUFBa0IsUUFBaUI7UUFDakMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsUUFBZSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO0lBQ2pGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVzcG9uc2UgYXMgSUh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIEh0dHBSZXNwb25zZU9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBJSHR0cFJlc3BvbnNlIHt9XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2Uge1xuICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVzcG9uc2VPcHRpb25zKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZSB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVzcG9uc2UgaXMgYSB2YWxpZCBIdHRwUmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICB9XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread } from \"tslib\";\nvar HttpRequest = /** @class */ (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? options.protocol + \":\"\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BO0lBVUUscUJBQVksT0FBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztnQkFDbkMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQUc7Z0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBSSxPQUFPLENBQUMsSUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RyxDQUFDO0lBRU0sc0JBQVUsR0FBakIsVUFBa0IsT0FBZ0I7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsSUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxRQUFRLElBQUksR0FBRztZQUNmLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ2IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyx1QkFDekIsSUFBSSxLQUNQLE9BQU8sZUFBTyxJQUFJLENBQUMsT0FBTyxLQUMxQixDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBL0NELElBK0NDOztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVxdWVzdCBhcyBJSHR0cFJlcXVlc3QsIFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgSHR0cFJlcXVlc3RPcHRpb25zID0gUGFydGlhbDxIdHRwTWVzc2FnZT4gJiBQYXJ0aWFsPEVuZHBvaW50PiAmIHsgbWV0aG9kPzogc3RyaW5nIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3QgZXh0ZW5kcyBJSHR0cFJlcXVlc3Qge31cblxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0IGltcGxlbWVudHMgSHR0cE1lc3NhZ2UsIEVuZHBvaW50IHtcbiAgcHVibGljIG1ldGhvZDogc3RyaW5nO1xuICBwdWJsaWMgcHJvdG9jb2w6IHN0cmluZztcbiAgcHVibGljIGhvc3RuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3J0PzogbnVtYmVyO1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgdGhpcy5ob3N0bmFtZSA9IG9wdGlvbnMuaG9zdG5hbWUgfHwgXCJsb2NhbGhvc3RcIjtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQ7XG4gICAgdGhpcy5xdWVyeSA9IG9wdGlvbnMucXVlcnkgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuYm9keSA9IG9wdGlvbnMuYm9keTtcbiAgICB0aGlzLnByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbFxuICAgICAgPyBvcHRpb25zLnByb3RvY29sLnN1YnN0cigtMSkgIT09IFwiOlwiXG4gICAgICAgID8gYCR7b3B0aW9ucy5wcm90b2NvbH06YFxuICAgICAgICA6IG9wdGlvbnMucHJvdG9jb2xcbiAgICAgIDogXCJodHRwczpcIjtcbiAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGggPyAob3B0aW9ucy5wYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIgPyBgLyR7b3B0aW9ucy5wYXRofWAgOiBvcHRpb25zLnBhdGgpIDogXCIvXCI7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXF1ZXN0OiB1bmtub3duKTogcmVxdWVzdCBpcyBIdHRwUmVxdWVzdCB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVxdWVzdCBpcyBhIHZhbGlkIGh0dHBSZXF1ZXN0XG4gICAgaWYgKCFyZXF1ZXN0KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVxOiBhbnkgPSByZXF1ZXN0O1xuICAgIHJldHVybiAoXG4gICAgICBcIm1ldGhvZFwiIGluIHJlcSAmJlxuICAgICAgXCJwcm90b2NvbFwiIGluIHJlcSAmJlxuICAgICAgXCJob3N0bmFtZVwiIGluIHJlcSAmJlxuICAgICAgXCJwYXRoXCIgaW4gcmVxICYmXG4gICAgICB0eXBlb2YgcmVxW1wicXVlcnlcIl0gPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIHR5cGVvZiByZXFbXCJoZWFkZXJzXCJdID09PSBcIm9iamVjdFwiXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCk6IEh0dHBSZXF1ZXN0IHtcbiAgICBjb25zdCBjbG9uZWQgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgLi4udGhpcyxcbiAgICAgIGhlYWRlcnM6IHsgLi4udGhpcy5oZWFkZXJzIH0sXG4gICAgfSk7XG4gICAgaWYgKGNsb25lZC5xdWVyeSkgY2xvbmVkLnF1ZXJ5ID0gY2xvbmVRdWVyeShjbG9uZWQucXVlcnkpO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxZQUFZLEdBQThCLEVBQUUsQ0FBQztBQUNuRCxJQUFNLFlBQVksR0FBOEIsRUFBRSxDQUFDO0FBRW5ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzVCLFdBQVcsR0FBRyxNQUFJLFdBQWEsQ0FBQztLQUNqQztJQUVELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFDLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBdUMsV0FBVyxvQkFBaUIsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFpQjtJQUNyQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0hPUlRfVE9fSEVYOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG5jb25zdCBIRVhfVE9fU0hPUlQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsZXQgZW5jb2RlZEJ5dGUgPSBpLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZW5jb2RlZEJ5dGUubGVuZ3RoID09PSAxKSB7XG4gICAgZW5jb2RlZEJ5dGUgPSBgMCR7ZW5jb2RlZEJ5dGV9YDtcbiAgfVxuXG4gIFNIT1JUX1RPX0hFWFtpXSA9IGVuY29kZWRCeXRlO1xuICBIRVhfVE9fU0hPUlRbZW5jb2RlZEJ5dGVdID0gaTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nIHRvIGEgVWludDhBcnJheSBvZiBieXRlcy5cbiAqXG4gKiBAcGFyYW0gZW5jb2RlZCBUaGUgaGV4YWRlY2ltYWwgZW5jb2RlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXgoZW5jb2RlZDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChlbmNvZGVkLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIZXggZW5jb2RlZCBzdHJpbmdzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBsZW5ndGhcIik7XG4gIH1cblxuICBjb25zdCBvdXQgPSBuZXcgVWludDhBcnJheShlbmNvZGVkLmxlbmd0aCAvIDIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBlbmNvZGVkQnl0ZSA9IGVuY29kZWQuc3Vic3RyKGksIDIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGVuY29kZWRCeXRlIGluIEhFWF9UT19TSE9SVCkge1xuICAgICAgb3V0W2kgLyAyXSA9IEhFWF9UT19TSE9SVFtlbmNvZGVkQnl0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlY29kZSB1bnJlY29nbml6ZWQgc2VxdWVuY2UgJHtlbmNvZGVkQnl0ZX0gYXMgaGV4YWRlY2ltYWxgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgVWludDhBcnJheSBvZiBiaW5hcnkgZGF0YSB0byBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyBUaGUgYmluYXJ5IGRhdGEgdG8gZW5jb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleChieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgIG91dCArPSBTSE9SVF9UT19IRVhbYnl0ZXNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\nexport var display = function (api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!Object.prototype.hasOwnProperty.call(ConsoleApiName, api)) {\n api = ConsoleApiName.log;\n }\n display[api].apply(display, args);\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\ndisplay.debug = globalConsole.debug.bind(globalConsole);\ndisplay.log = globalConsole.log.bind(globalConsole);\ndisplay.info = globalConsole.info.bind(globalConsole);\ndisplay.warn = globalConsole.warn.bind(globalConsole);\ndisplay.error = globalConsole.error.bind(globalConsole);\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ConsoleApiName, display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(ConsoleApiName.error, e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(ConsoleApiName.error, e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled(api) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (debugMode) {\n display.apply(void 0, __spreadArray([api, '[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","import { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { display } from '../display';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(customerDataType, \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../utils/byteUtils';\nimport { throttle } from '../utils/functionUtils';\nimport { deepClone } from '../mergeInto';\nimport { getType } from '../utils/typeUtils';\nimport { jsonStringify } from './jsonStringify';\nimport { sanitize } from './sanitize';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n /** @deprecated use getContext instead */\n get: function () { return context; },\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value;\n computeBytesCountThrottled(context);\n },\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n },\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext;\n computeBytesCountThrottled(context);\n },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n },\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var regex = new RegExp(\"(?:^|;)\\\\s*\".concat(name, \"\\\\s*=\\\\s*([^;]+)\"));\n var matches = regex.exec(rawString);\n return matches ? matches[1] : undefined;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { getCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\n/**\n * Computes a stack trace for an exception.\n */\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { computeStackTrace } from '../tracekit';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"PAGE_STATES\"] = \"page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"NO_RESOURCE_DURATION_FROZEN_STATE\"] = \"no_resource_duration_frozen_state\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { isChromium } from '../../tools/utils/browserDetection';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n var lockEnabled = isLockEnabled();\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (lockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (lockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (lockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (lockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\n/**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\nexport var isLockEnabled = function () { return isChromium(); };\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","export function isIE() {\n return Boolean(document.documentMode);\n}\nexport function isChromium() {\n return !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent);\n}\n//# sourceMappingURL=browserDetection.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_AP1 = 'ap1.datadoghq.com';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_AP1, INTAKE_SITE_US1 } from './intakeSites';\nexport var ENDPOINTS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'session-replay',\n};\nvar INTAKE_TRACKS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'replay',\n};\nexport function createEndpointBuilder(initConfiguration, endpointType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, endpointType);\n return {\n build: function (api, flushReason, retry) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, flushReason, retry);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n endpointType: endpointType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, endpointType) {\n var path = \"/api/v2/\".concat(INTAKE_TRACKS[endpointType]);\n var proxy = initConfiguration.proxy, proxyUrl = initConfiguration.proxyUrl;\n if (proxy) {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n var host = buildEndpointHost(initConfiguration, endpointType);\n if (proxy === undefined && proxyUrl) {\n // TODO: remove this in a future major.\n var normalizedProxyUrl_2 = normalizeUrl(proxyUrl);\n return function (parameters) {\n return \"\".concat(normalizedProxyUrl_2, \"?ddforward=\").concat(encodeURIComponent(\"https://\".concat(host).concat(path, \"?\").concat(parameters)));\n };\n }\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration, endpointType) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n var subdomain = site !== INTAKE_SITE_AP1 ? \"\".concat(ENDPOINTS[endpointType], \".\") : '';\n return \"\".concat(subdomain, \"browser-intake-\").concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, endpointType, configurationTags, api, flushReason, retry) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var tags = [\"sdk_version:\".concat(\"4.47.0\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"4.47.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (endpointType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'sessionReplay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n var sessionSampleRate = (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.sampleRate;\n if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: sessionSampleRate !== null && sessionSampleRate !== void 0 ? sessionSampleRate : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n var _a, _b;\n var proxy = (_a = initConfiguration.proxy) !== null && _a !== void 0 ? _a : initConfiguration.proxyUrl;\n return {\n session_sample_rate: (_b = initConfiguration.sessionSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.sampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: proxy !== undefined ? !!proxy : undefined,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_resources: initConfiguration.trackResources,\n track_long_task: initConfiguration.trackLongTasks,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceId = new TraceIdentifier();\n context.spanId = new TraceIdentifier();\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nfunction getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n/* eslint-disable no-bitwise */\nvar TraceIdentifier = /** @class */ (function () {\n function TraceIdentifier() {\n this.buffer = new Uint8Array(8);\n getCrypto().getRandomValues(this.buffer);\n this.buffer[0] = this.buffer[0] & 0x7f; // force 63-bit\n }\n TraceIdentifier.prototype.toString = function (radix) {\n var high = this.readInt32(0);\n var low = this.readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n };\n /**\n * Format used everywhere except the trace intake\n */\n TraceIdentifier.prototype.toDecimalString = function () {\n return this.toString(10);\n };\n /**\n * Format used by OTel headers\n */\n TraceIdentifier.prototype.toPaddedHexadecimalString = function () {\n var traceId = this.toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n };\n TraceIdentifier.prototype.readInt32 = function (offset) {\n return (this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]);\n };\n return TraceIdentifier;\n}());\nexport { TraceIdentifier };\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, getOrigin, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100');\n return;\n }\n // TODO remove fallback in next major\n var premiumSampleRate = (_a = initConfiguration.premiumSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.replaySampleRate;\n if (premiumSampleRate !== undefined && initConfiguration.sessionReplaySampleRate !== undefined) {\n display.warn('Ignoring Premium Sample Rate because Session Replay Sample Rate is set');\n premiumSampleRate = undefined;\n }\n if (premiumSampleRate !== undefined && !isPercentage(premiumSampleRate)) {\n display.error('Premium Sample Rate should be a number between 0 and 100');\n return;\n }\n var traceSampleRate = (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.tracingSampleRate;\n if (traceSampleRate !== undefined && !isPercentage(traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n var trackUserInteractions = !!((_c = initConfiguration.trackUserInteractions) !== null && _c !== void 0 ? _c : initConfiguration.trackInteractions);\n var trackFrustrations = !!initConfiguration.trackFrustrations;\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_e = (_d = initConfiguration.sessionReplaySampleRate) !== null && _d !== void 0 ? _d : premiumSampleRate) !== null && _e !== void 0 ? _e : 100,\n oldPlansBehavior: initConfiguration.sessionReplaySampleRate === undefined,\n traceSampleRate: traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_f = initConfiguration.excludedActivityUrls) !== null && _f !== void 0 ? _f : [],\n workerUrl: initConfiguration.workerUrl,\n trackUserInteractions: trackUserInteractions || trackFrustrations,\n trackFrustrations: trackFrustrations,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: initConfiguration.trackResources,\n trackLongTasks: initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK_USER_INPUT,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Handles allowedTracingUrls and processes legacy allowedTracingOrigins\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n // Advise about parameters precedence.\n if (initConfiguration.allowedTracingUrls !== undefined && initConfiguration.allowedTracingOrigins !== undefined) {\n display.warn('Both allowedTracingUrls and allowedTracingOrigins (deprecated) have been defined. The parameter allowedTracingUrls will override allowedTracingOrigins.');\n }\n // Handle allowedTracingUrls first\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions_1 = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions_1.push({ match: option, propagatorTypes: ['datadog'] });\n }\n else if (isTracingOption(option)) {\n tracingOptions_1.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions_1;\n }\n // Handle conversion of allowedTracingOrigins to allowedTracingUrls\n if (initConfiguration.allowedTracingOrigins !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingOrigins)) {\n display.error('Allowed Tracing Origins should be an array');\n return;\n }\n if (initConfiguration.allowedTracingOrigins.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n var tracingOptions_2 = [];\n initConfiguration.allowedTracingOrigins.forEach(function (legacyMatchOption) {\n var tracingOption = convertLegacyMatchOptionToTracingOption(legacyMatchOption);\n if (tracingOption) {\n tracingOptions_2.push(tracingOption);\n }\n });\n return tracingOptions_2;\n }\n return [];\n}\n/**\n * Converts parameters from the deprecated allowedTracingOrigins\n * to allowedTracingUrls. Handles the change from origin to full URLs.\n */\nfunction convertLegacyMatchOptionToTracingOption(item) {\n var match;\n if (typeof item === 'string') {\n match = item;\n }\n else if (item instanceof RegExp) {\n match = function (url) { return item.test(getOrigin(url)); };\n }\n else if (typeof item === 'function') {\n match = function (url) { return item(getOrigin(url)); };\n }\n if (match === undefined) {\n display.warn('Allowed Tracing Origins parameters should be a string, RegExp or function. Ignoring parameter', item);\n return undefined;\n }\n return { match: match, propagatorTypes: ['datadog'] };\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls,\n * and assumes 'datadog' has been selected when using allowedTracingOrigins\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n usedTracingPropagators.add('datadog');\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n if (Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0) {\n usedTracingPropagators.add('datadog');\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a, _b;\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n premium_sample_rate: configuration.premiumSampleRate,\n replay_sample_rate: configuration.replaySampleRate,\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n trace_sample_rate: (_a = configuration.traceSampleRate) !== null && _a !== void 0 ? _a : configuration.tracingSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n track_frustrations: configuration.trackFrustrations,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: (_b = configuration.trackUserInteractions) !== null && _b !== void 0 ? _b : configuration.trackInteractions,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export function buildCommonContext(globalContextManager, userContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { computeStackTrace } from '../tracekit';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"4.47.0\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: event,\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(_, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var wrappedListener = monitor(once\n ? function (event) {\n stop();\n listener(event);\n }\n : listener);\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, wrappedListener, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, wrappedListener, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */, \"pagehide\" /* DOM_EVENT.PAGE_HIDE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n var observable = new Observable(function () {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n return observable;\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n }\n else {\n var eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function getChildNodes(node) {\n return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes;\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/rumEventsCollection/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = ['resource', 'navigation', 'longtask', 'paint'];\n var experimentalEntries = ['largest-contentful-paint', 'first-input', 'layout-shift'];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({ type: type, buffered: true });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver.observe({ entryTypes: mainEntries });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n }\n if (!supportPerformanceTimingEvent('navigation')) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent('first-input')) {\n retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: 'resource',\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n };\n if (supportPerformanceTimingEvent('navigation') && performance.getEntriesByType('navigation').length > 0) {\n var navigationEntry = performance.getEntriesByType('navigation')[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: 'navigation',\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: 'first-input',\n processingStart: relativeNow(),\n startTime: evt.timeStamp,\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], function (event) {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return entry.entryType === 'resource' ||\n entry.entryType === 'navigation' ||\n entry.entryType === 'paint' ||\n entry.entryType === 'longtask' ||\n entry.entryType === 'largest-contentful-paint' ||\n entry.entryType === 'first-input' ||\n entry.entryType === 'layout-shift';\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === 'navigation' && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === 'resource' && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { Observable, throttle, addEventListener } from '@datadog/browser-core';\nvar viewportObservable;\nexport function initViewportObservable(configuration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration);\n }\n return viewportObservable;\n}\nexport function createViewportObservable(configuration) {\n var observable = new Observable(function () {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, \"resize\" /* DOM_EVENT.RESIZE */, updateDimension, { capture: true, passive: true })\n .stop;\n });\n return observable;\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { getViewportDimension, initViewportObservable } from '../../browser/viewportObservable';\nvar viewport;\nvar stopListeners;\nexport function getDisplayContext(configuration) {\n if (!viewport) {\n viewport = getViewportDimension();\n stopListeners = initViewportObservable(configuration).subscribe(function (viewportDimension) {\n viewport = viewportDimension;\n }).unsubscribe;\n }\n return {\n viewport: viewport,\n };\n}\nexport function resetDisplayContext() {\n if (stopListeners) {\n stopListeners();\n }\n viewport = undefined;\n}\n//# sourceMappingURL=displayContext.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { getCiTestContext } from './contexts/ciTestContext';\nimport { getDisplayContext } from './contexts/displayContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, buildCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var commonContext = savedCommonContext || buildCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n session: {\n plan: session.plan,\n },\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"4.47.0\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? \"synthetics\" /* SessionType.SYNTHETICS */ : ciTestContext ? \"ci_test\" /* SessionType.CI_TEST */ : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: getDisplayContext(configuration),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, relativeNow, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method,\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startTime = relativeNow();\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewContexts(lifeCycle) {\n var viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY);\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (view) {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewContextHistory.reset();\n });\n function buildViewContext(view) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewContextHistory.find(startTime); },\n stop: function () {\n viewContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewContexts.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './rumEventsCollection/resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n if (event.type === 'view' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n eventCounts.resourceCount += 1;\n callback();\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethodAndCallOriginal, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n var observable = new Observable(function () {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === 'resource' && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(5 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n return observable;\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback });\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { addEventListener } from '@datadog/browser-core';\nexport function listenActionEvents(configuration, _a) {\n var onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp;\n var selectionEmptyAtPointerDown;\n var userActivity = {\n selection: false,\n input: false,\n };\n var clickContext;\n var listeners = [\n addEventListener(configuration, window, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty();\n userActivity = {\n selection: false,\n input: false,\n };\n clickContext = onPointerDown(event);\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"selectionchange\" /* DOM_EVENT.SELECTION_CHANGE */, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"pointerup\" /* DOM_EVENT.POINTER_UP */, function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity_1 = userActivity;\n onPointerUp(clickContext, event, function () { return localUserActivity_1; });\n clickContext = undefined;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"input\" /* DOM_EVENT.INPUT */, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../../waitPageActivityEnd';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { getSelectorFromElement } from './getSelectorFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent);\n },\n onPointerUp: function (_a, startEvent, getUserActivity) {\n var clickActionBase = _a.clickActionBase, hadActivityOnPointerDown = _a.hadActivityOnPointerDown;\n return startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown);\n },\n }).stop;\n var actionContexts = {\n findActionId: function (startTime) {\n return configuration.trackFrustrations ? history.findAll(startTime) : history.find(startTime);\n },\n };\n return {\n stop: function () {\n stopClickChain();\n stopObservable.notify();\n stopActionEventsListener();\n },\n actionContexts: actionContexts,\n };\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick_1 = click.clone();\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick_1);\n });\n }\n }\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop();\n }\n }\n}\nfunction processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent) {\n if (!configuration.trackFrustrations && history.find()) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any new\n // action if another one is already occurring.\n return;\n }\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\n if (!configuration.trackFrustrations && !clickActionBase.name) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any action\n // with a blank name\n return;\n }\n var hadActivityOnPointerDown = false;\n waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;\n }, \n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY);\n return { clickActionBase: clickActionBase, hadActivityOnPointerDown: function () { return hadActivityOnPointerDown; } };\n}\nfunction startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {\n var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);\n if (configuration.trackFrustrations) {\n appendClickToClickChain(click);\n }\n var stopWaitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard();\n }\n else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end);\n }\n else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp);\n }\n else {\n click.stop();\n }\n // Validate or discard the click only if we don't track frustrations. It'll be done when\n // the click chain is finalized.\n if (!configuration.trackFrustrations) {\n if (!pageActivityEndEvent.hadActivity) {\n // If we are not tracking frustrations, we should discard the click to keep backward\n // compatibility.\n click.discard();\n }\n else {\n click.validate();\n }\n }\n }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n click.stop(endClocks.timeStamp);\n });\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop();\n });\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe();\n stopWaitPageActivityEnd();\n stopSubscription.unsubscribe();\n });\n}\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect();\n return {\n type: \"click\" /* ActionType.CLICK */,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n };\n}\nfunction newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {\n var id = generateUUID();\n var startClocks = clocksNow();\n var historyEntry = history.add(id, startClocks.relative);\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id);\n },\n });\n var status = 0 /* ClickStatus.ONGOING */;\n var activityEndTime;\n var frustrationTypes = [];\n var stopObservable = new Observable();\n function stop(newActivityEndTime) {\n if (status !== 0 /* ClickStatus.ONGOING */) {\n return;\n }\n activityEndTime = newActivityEndTime;\n status = 1 /* ClickStatus.STOPPED */;\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime));\n }\n else {\n historyEntry.remove();\n }\n eventCountsSubscription.stop();\n stopObservable.notify();\n }\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0;\n },\n get hasPageActivity() {\n return activityEndTime !== undefined;\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType);\n },\n startClocks: startClocks,\n isStopped: function () { return status === 1 /* ClickStatus.STOPPED */ || status === 2 /* ClickStatus.FINALIZED */; },\n clone: function () { return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent); },\n validate: function (domEvents) {\n stop();\n if (status !== 1 /* ClickStatus.STOPPED */) {\n return;\n }\n var _a = eventCountsSubscription.eventCounts, resourceCount = _a.resourceCount, errorCount = _a.errorCount, longTaskCount = _a.longTaskCount;\n var clickAction = assign({\n type: \"click\" /* ActionType.CLICK */,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount,\n },\n events: domEvents !== null && domEvents !== void 0 ? domEvents : [startEvent],\n event: startEvent,\n }, clickActionBase);\n lifeCycle.notify(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, clickAction);\n status = 2 /* ClickStatus.FINALIZED */;\n },\n discard: function () {\n stop();\n status = 2 /* ClickStatus.FINALIZED */;\n },\n };\n}\nexport function finalizeClicks(clicks, rageClick) {\n var isRage = computeFrustration(clicks, rageClick).isRage;\n if (isRage) {\n clicks.forEach(function (click) { return click.discard(); });\n rageClick.stop(timeStampNow());\n rageClick.validate(clicks.map(function (click) { return click.event; }));\n }\n else {\n rageClick.discard();\n clicks.forEach(function (click) { return click.validate(); });\n }\n}\n//# sourceMappingURL=trackClickActions.js.map","import { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core';\nimport { trackClickActions } from './trackClickActions';\nexport function startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory) {\n lifeCycle.subscribe(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, function (action) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processAction(action, pageStateHistory));\n });\n var actionContexts = { findActionId: noop };\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts;\n }\n return {\n addAction: function (action, savedCommonContext) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n savedCommonContext: savedCommonContext,\n }, processAction(action, pageStateHistory)));\n },\n actionContexts: actionContexts,\n };\n}\nfunction processAction(action, pageStateHistory) {\n var autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined;\n var customerContext = !isAutoAction(action) ? action.context : undefined;\n var actionEvent = combine({\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: \"action\" /* RumEventType.ACTION */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n }, autoActionProperties);\n return {\n customerContext: customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { event: action.event, events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { computeStackTrace } from './computeStackTrace';\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nexport function startUnhandledErrorCollection(callback) {\n var stopInstrumentingOnError = instrumentOnError(callback).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(callback).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name_1 = _a.name, message = _a.message;\n stackTrace = {\n name: name_1,\n message: message,\n stack: stack,\n };\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=tracekit.js.map","import { computeStackTrace } from '../tracekit';\nimport { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n message = \"console error: \".concat(message);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { addEventListeners } from '@datadog/browser-core';\nvar trackFirstHiddenSingleton;\nvar stopListeners;\nexport function trackFirstHidden(configuration, eventTarget) {\n if (eventTarget === void 0) { eventTarget = window; }\n if (!trackFirstHiddenSingleton) {\n if (document.visibilityState === 'hidden') {\n trackFirstHiddenSingleton = {\n timeStamp: 0,\n };\n }\n else {\n trackFirstHiddenSingleton = {\n timeStamp: Infinity,\n };\n (stopListeners = addEventListeners(configuration, eventTarget, [\"pagehide\" /* DOM_EVENT.PAGE_HIDE */, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */], function (event) {\n if (event.type === 'pagehide' || document.visibilityState === 'hidden') {\n trackFirstHiddenSingleton.timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n }\n return trackFirstHiddenSingleton;\n}\nexport function resetFirstHidden() {\n if (stopListeners) {\n stopListeners();\n }\n trackFirstHiddenSingleton = undefined;\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n }, processError(error, pageStateHistory, featureFlagContexts)));\n });\n return {\n addError: function (_a, savedCommonContext) {\n var error = _a.error, handlingStack = _a.handlingStack, startClocks = _a.startClocks, customerContext = _a.context;\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n handlingStack: handlingStack,\n startClocks: startClocks,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.CUSTOM,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n });\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { clocksNow } from '../../tools/utils/timeUtils';\nimport { startUnhandledErrorCollection } from '../tracekit';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n return startUnhandledErrorCollection(function (stackTrace, originalError) {\n errorObservable.notify(computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n }));\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { clocksNow, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core';\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe(function (reportError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processRequest(request, configuration, sessionManager, pageStateHistory));\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === 'resource' && !isRequestKind(entry)) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processResourceEntry(entry, configuration, sessionManager, pageStateHistory));\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var duration = computeRequestDuration(pageStateHistory, startClocks, request.duration);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, (_a = matchingTiming === null || matchingTiming === void 0 ? void 0 : matchingTiming.duration) !== null && _a !== void 0 ? _a : request.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n duration: duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, correspondingTimingOverrides, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming && toPerformanceEntryRepresentation(matchingTiming),\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n },\n };\n}\nfunction processResourceEntry(entry, configuration, sessionManager, pageStateHistory) {\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\n var startClocks = relativeToClocks(entry.startTime);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n url: entry.name,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, entryMetrics, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: toPerformanceEntryRepresentation(entry),\n },\n };\n}\nfunction computePerformanceEntryMetrics(timing) {\n return {\n resource: assign({\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n }, computePerformanceResourceDetails(timing)),\n };\n}\nfunction computeRequestTracingInfo(request, configuration) {\n var hasBeenTraced = request.traceSampled && request.traceId && request.spanId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n span_id: request.spanId.toDecimalString(),\n trace_id: request.traceId.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n };\n}\nfunction computeEntryTracingInfo(entry, configuration) {\n var hasBeenTraced = entry.traceId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n };\n}\n// TODO next major: use directly PerformanceEntry type in domain context\nfunction toPerformanceEntryRepresentation(entry) {\n return entry;\n}\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined;\n}\nfunction computeIndexingInfo(sessionManager, resourceStart) {\n var session = sessionManager.findTrackedSession(resourceStart.relative);\n return {\n _dd: {\n discarded: !session || !session.resourceAllowed,\n },\n };\n}\nfunction computePageStateInfo(pageStateHistory, startClocks, duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return;\n }\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String(document.wasDiscarded),\n },\n };\n}\nfunction computeRequestDuration(pageStateHistory, startClocks, duration) {\n var _a;\n // TODO remove FF in next major\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.NO_RESOURCE_DURATION_FROZEN_STATE)) {\n return toServerDuration(duration);\n }\n var requestCrossedFrozenState = (_a = pageStateHistory\n .findAll(startClocks.relative, duration)) === null || _a === void 0 ? void 0 : _a.some(function (pageState) { return pageState.state === \"frozen\" /* PageState.FROZEN */; });\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { toServerDuration } from '@datadog/browser-core';\n// Todo: Remove in the next major release\nexport function mapToForegroundPeriods(pageStateServerEntries, duration) {\n var foregroundPeriods = [];\n for (var i = 0; i < pageStateServerEntries.length; i++) {\n var current = pageStateServerEntries[i];\n var next = pageStateServerEntries[i + 1];\n if (current.state === \"active\" /* PageState.ACTIVE */) {\n var start = current.start >= 0 ? current.start : 0;\n var end = next ? next.start : toServerDuration(duration);\n foregroundPeriods.push({\n start: start,\n duration: (end - start),\n });\n }\n }\n return foregroundPeriods;\n}\n//# sourceMappingURL=foregroundContexts.js.map","import { setTimeout, assign, addEventListeners, elapsed, ONE_MINUTE, find, findLast, relativeNow, } from '@datadog/browser-core';\nimport { trackFirstHidden } from './trackFirstHidden';\n// Discard LCP and FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var TIMING_MAXIMUM_DELAY = 10 * ONE_MINUTE;\n/**\n * The initial view can finish quickly, before some metrics can be produced (ex: before the page load\n * event, or the first input). Also, we don't want to trigger a view update indefinitely, to avoid\n * updates on views that ended a long time ago. Keep watching for metrics after the view ends for a\n * limited amount of time.\n */\nexport var KEEP_TRACKING_TIMINGS_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackInitialViewTimings(lifeCycle, configuration, webVitalTelemetryDebug, setLoadEvent, scheduleViewUpdate) {\n var timings = {};\n function setTimings(newTimings) {\n assign(timings, newTimings);\n scheduleViewUpdate();\n }\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (newTimings) {\n setLoadEvent(newTimings.loadEvent);\n setTimings(newTimings);\n }).stop;\n var stopFCPTracking = trackFirstContentfulPaintTiming(lifeCycle, configuration, function (firstContentfulPaint) {\n return setTimings({ firstContentfulPaint: firstContentfulPaint });\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaintTiming(lifeCycle, configuration, window, function (largestContentfulPaint, lcpElement) {\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('LCP', lcpElement, largestContentfulPaint);\n setTimings({\n largestContentfulPaint: largestContentfulPaint,\n });\n }).stop;\n var stopFIDTracking = trackFirstInputTimings(lifeCycle, configuration, function (_a) {\n var firstInputDelay = _a.firstInputDelay, firstInputTime = _a.firstInputTime, firstInputTarget = _a.firstInputTarget;\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('FID', firstInputTarget, firstInputTime);\n setTimings({\n firstInputDelay: firstInputDelay,\n firstInputTime: firstInputTime,\n });\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n }\n return {\n stop: stop,\n timings: timings,\n scheduleStop: function () {\n setTimeout(stop, KEEP_TRACKING_TIMINGS_AFTER_VIEW_DELAY);\n },\n };\n}\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === 'navigation') {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\nexport function trackFirstContentfulPaintTiming(lifeCycle, configuration, callback) {\n var firstHidden = trackFirstHidden(configuration);\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === 'paint' &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < TIMING_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return { stop: stop };\n}\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getLCP.ts\n */\nexport function trackLargestContentfulPaintTiming(lifeCycle, configuration, eventTarget, callback) {\n var firstHidden = trackFirstHidden(configuration);\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [\"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === 'largest-contentful-paint' &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < TIMING_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n callback(lcpEntry.startTime, lcpEntry.element);\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInputTimings(lifeCycle, configuration, callback) {\n var firstHidden = trackFirstHidden(configuration);\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === 'first-input' && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n firstInputDelay: firstInputDelay >= 0 ? firstInputDelay : 0,\n firstInputTime: firstInputEntry.startTime,\n firstInputTarget: firstInputEntry.target,\n });\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=trackInitialViewTimings.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { ONE_SECOND, addEventListener, elapsed, noop, relativeNow, round, throttle, find, } from '@datadog/browser-core';\nimport { supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart, webVitalTelemetryDebug) {\n var viewMetrics = {};\n var scrollMetrics;\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n viewMetrics.loadingTime = newLoadingTime;\n // We compute scroll metrics at loading time to ensure we have scroll data when loading the view initially\n // This is to ensure that we have the depth data even if the user didn't scroll or if the view is not scrollable.\n var _a = computeScrollValues(), scrollHeight = _a.scrollHeight, scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop;\n scrollMetrics = {\n maxDepth: scrollDepth,\n maxDepthScrollHeight: scrollHeight,\n maxDepthTime: newLoadingTime,\n maxDepthScrollTop: scrollTop,\n };\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n scrollMetrics = newScrollMetrics;\n }, computeScrollValues).stop;\n var stopCLSTracking;\n var clsAttributionCollected = false;\n if (isLayoutShiftSupported()) {\n viewMetrics.cumulativeLayoutShift = 0;\n (stopCLSTracking = trackCumulativeLayoutShift(lifeCycle, function (cumulativeLayoutShift, largestLayoutShiftNode, largestLayoutShiftTime) {\n viewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n if (!clsAttributionCollected) {\n clsAttributionCollected = true;\n webVitalTelemetryDebug.addWebVitalTelemetryDebug('CLS', largestLayoutShiftNode, largestLayoutShiftTime);\n }\n scheduleViewUpdate();\n }).stop);\n }\n else {\n stopCLSTracking = noop;\n }\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n },\n setLoadEvent: setLoadEvent,\n viewMetrics: viewMetrics,\n getScrollMetrics: function () { return scrollMetrics; },\n };\n}\nexport function trackScrollMetrics(configuration, viewStart, callback, getScrollValues) {\n if (getScrollValues === void 0) { getScrollValues = computeScrollValues; }\n var maxDepth = 0;\n var handleScrollEvent = throttle(function () {\n var _a = getScrollValues(), scrollHeight = _a.scrollHeight, scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop;\n if (scrollDepth > maxDepth) {\n var now = relativeNow();\n var maxDepthTime = elapsed(viewStart.relative, now);\n maxDepth = scrollDepth;\n callback({\n maxDepth: maxDepth,\n maxDepthScrollHeight: scrollHeight,\n maxDepthTime: maxDepthTime,\n maxDepthScrollTop: scrollTop,\n });\n }\n }, THROTTLE_SCROLL_DURATION, { leading: false, trailing: true });\n var stop = addEventListener(configuration, window, \"scroll\" /* DOM_EVENT.SCROLL */, handleScrollEvent.throttled, {\n passive: true,\n }).stop;\n return {\n stop: function () {\n handleScrollEvent.cancel();\n stop();\n },\n };\n}\nfunction computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nfunction trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nfunction trackCumulativeLayoutShift(lifeCycle, callback) {\n var maxClsValue = 0;\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === 'layout-shift' && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n callback(round(maxClsValue, 4), window.largestLayoutShiftNode(), window.largestLayoutShiftTime());\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftNode;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftNode = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n var largestLayoutShiftSource = find(entry.sources, function (s) { var _a; return ((_a = s.node) === null || _a === void 0 ? void 0 : _a.nodeType) === 1; }) || entry.sources[0];\n largestLayoutShiftNode = largestLayoutShiftSource.node;\n }\n else {\n largestLayoutShiftNode = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftNode: function () { return largestLayoutShiftNode; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nfunction isLayoutShiftSupported() {\n return supportPerformanceTimingEvent('layout-shift');\n}\n//# sourceMappingURL=trackViewMetrics.js.map","import { ONE_MINUTE, setTimeout } from '@datadog/browser-core';\nimport { trackEventCounts } from '../../trackEventCounts';\n// Some events are not being counted as they transcend views. To reduce the occurrence;\n// an arbitrary delay is added for stopping event counting after the view ends.\n//\n// Ideally, we would not stop and keep counting events until the end of the session.\n// But this might have a small performance impact if there are many many views:\n// we would need to go through each event to see if the related view matches.\n// So let's have a fairly short delay to avoid impacting performances too much.\n//\n// In the future, we could have views stored in a data structure similar to ContextHistory. Whenever\n// a child event is collected, we could look into this history to find the matching view and\n// increase the associated and increase its counter. Having a centralized data structure for it\n// would allow us to look for views more efficiently.\n//\n// For now, having a small cleanup delay will already improve the situation in most cases.\nexport var KEEP_TRACKING_EVENT_COUNTS_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n scheduleStop: function () {\n setTimeout(stop, KEEP_TRACKING_EVENT_COUNTS_AFTER_VIEW_DELAY);\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { noop, PageExitReason, shallowClone, assign, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, } from '@datadog/browser-core';\nimport { trackInitialViewTimings } from './trackInitialViewTimings';\nimport { trackViewMetrics } from './trackViewMetrics';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, webVitalTelemetryDebug, initialViewOptions) {\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n return newView(lifeCycle, domMutationObservable, configuration, location, loadingType, webVitalTelemetryDebug, startClocks, viewOptions);\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n // Renew view on session renewal\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n });\n });\n lifeCycle.subscribe(7 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(9 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, webVitalTelemetryDebug, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n lifeCycle.notify(2 /* LifeCycleEventType.VIEW_CREATED */, {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n });\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks, webVitalTelemetryDebug), setLoadEvent = _b.setLoadEvent, stopViewMetricsTracking = _b.stop, viewMetrics = _b.viewMetrics, getScrollMetrics = _b.getScrollMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewTimings(lifeCycle, configuration, webVitalTelemetryDebug, setLoadEvent, scheduleViewUpdate)\n : { scheduleStop: noop, timings: {} }, scheduleStopInitialViewTimingsTracking = _c.scheduleStop, timings = _c.timings;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), scheduleStopEventCountsTracking = _d.scheduleStop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_UPDATED */, assign({\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n timings: timings,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts,\n scrollMetrics: getScrollMetrics(),\n }, viewMetrics));\n }\n return {\n name: name,\n service: service,\n version: version,\n end: function (options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n if (endClocks) {\n // view already ended\n return;\n }\n endClocks = (_a = options.endClocks) !== null && _a !== void 0 ? _a : clocksNow();\n sessionIsActive = (_b = options.sessionIsActive) !== null && _b !== void 0 ? _b : true;\n lifeCycle.notify(4 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n stopViewMetricsTracking();\n scheduleStopInitialViewTimingsTracking();\n scheduleStopEventCountsTracking();\n triggerViewUpdate();\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return;\n }\n var relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time);\n customTimings[sanitizeTiming(name)] = relativeTime;\n scheduleViewUpdate();\n },\n };\n}\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');\n if (sanitized !== name) {\n display.warn(\"Invalid timing name: \".concat(name, \", sanitized to: \").concat(sanitized));\n }\n return sanitized;\n}\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash)));\n}\nfunction isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1);\n return !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature, isEmptyObject, mapValues, toServerDuration, isNumber, } from '@datadog/browser-core';\nimport { mapToForegroundPeriods } from '../../contexts/foregroundContexts';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, webVitalTelemetryDebug, initialViewOptions) {\n lifeCycle.subscribe(3 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n var trackViewResult = trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, webVitalTelemetryDebug, initialViewOptions);\n return trackViewResult;\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var pageStatesEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGE_STATES);\n var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);\n var viewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStatesEnabled ? pageStates : undefined,\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: view.cumulativeLayoutShift,\n first_byte: toServerDuration(view.timings.firstByte),\n dom_complete: toServerDuration(view.timings.domComplete),\n dom_content_loaded: toServerDuration(view.timings.domContentLoaded),\n dom_interactive: toServerDuration(view.timings.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.timings.firstContentfulPaint),\n first_input_delay: toServerDuration(view.timings.firstInputDelay),\n first_input_time: toServerDuration(view.timings.firstInputTime),\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration(view.timings.largestContentfulPaint),\n load_event: toServerDuration(view.timings.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n in_foreground_periods: !pageStatesEnabled && pageStates ? mapToForegroundPeriods(pageStates, view.duration) : undefined, // Todo: Remove in the next major release\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.scrollMetrics\n ? {\n scroll: {\n max_depth: view.scrollMetrics.maxDepth,\n max_depth_scroll_height: view.scrollMetrics.maxDepthScrollHeight,\n max_depth_scroll_top: view.scrollMetrics.maxDepthScrollTop,\n max_depth_time: toServerDuration(view.scrollMetrics.maxDepthTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var stop = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var RUM_SESSION_KEY = 'rum';\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(7 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(8 /* LifeCycleEventType.SESSION_RENEWED */);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n if (!session || !isTypeTracked(session.trackingType)) {\n return;\n }\n var plan = session.trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */\n ? 2 /* RumSessionPlan.WITH_SESSION_REPLAY */\n : 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */;\n return {\n id: session.id,\n plan: plan,\n sessionReplayAllowed: plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n longTaskAllowed: configuration.trackLongTasks !== undefined\n ? configuration.trackLongTasks\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n resourceAllowed: configuration.trackResources !== undefined\n ? configuration.trackResources\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n };\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n };\n}\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n plan: 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */,\n sessionReplayAllowed: false,\n longTaskAllowed: true,\n resourceAllowed: true,\n };\n return {\n findTrackedSession: function () { return session; },\n expire: noop,\n expireObservable: new Observable(),\n };\n}\nfunction computeSessionState(configuration, rawTrackingType) {\n var trackingType;\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType;\n }\n else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = \"0\" /* RumTrackingType.NOT_TRACKED */;\n }\n else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */;\n }\n else {\n trackingType = \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */;\n }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType),\n };\n}\nfunction hasValidRumSession(trackingType) {\n return (trackingType === \"0\" /* RumTrackingType.NOT_TRACKED */ ||\n trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */ ||\n trackingType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */);\n}\nfunction isTypeTracked(rumSessionType) {\n return (rumSessionType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */ ||\n rumSessionType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */);\n}\n//# sourceMappingURL=rumSessionManager.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var flushObservable = new Observable();\n pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += messageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nvar Batch = /** @class */ (function () {\n function Batch(request, flushController, messageBytesLimit) {\n var _this = this;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n var payload = { data: messages.join('\\n'), bytesCount: event.bytesCount, flushReason: event.reason };\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload);\n }\n else {\n this.request.send(payload);\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var _a = this.process(message), processedMessage = _a.processedMessage, messageBytesCount = _a.messageBytesCount;\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(processedMessage, messageBytesCount, key);\n };\n Batch.prototype.process = function (message) {\n var processedMessage = jsonStringify(message);\n var messageBytesCount = computeBytesCount(processedMessage);\n return { processedMessage: processedMessage, messageBytesCount: messageBytesCount };\n };\n Batch.prototype.push = function (processedMessage, messageBytesCount, key) {\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 0 ? 1 : 0;\n this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage;\n }\n else {\n this.pushOnlyBuffer.push(processedMessage);\n }\n this.flushController.notifyAfterAddMessage();\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = computeBytesCount(removedMessage);\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 1 ? 1 : 0;\n this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\n//# sourceMappingURL=batch.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, endpointType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, endpointType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, endpointType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(endpointType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.endpointType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, _a) {\n var data = _a.data, bytesCount = _a.bytesCount, flushReason = _a.flushReason;\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', flushReason);\n var isQueued = navigator.sendBeacon(beaconUrl, data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', flushReason);\n sendXHR(configuration, xhrUrl, data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, _a, onResponse) {\n var data = _a.data, bytesCount = _a.bytesCount, flushReason = _a.flushReason, retry = _a.retry;\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', flushReason, retry);\n fetch(fetchUrl, { method: 'POST', body: data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', flushReason, retry);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', flushReason, retry);\n sendXHR(configuration, xhrUrl, data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n addEventListener(configuration, request, 'loadend', function () {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { createFlushController, Batch, combine, createHttpRequest, isTelemetryReplicationAllowed, } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable) {\n var batch = makeRumBatch(configuration, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\nfunction makeRumBatch(configuration, reportError, pageExitObservable, sessionExpireObservable) {\n var _a = createRumBatch(configuration.rumEndpointBuilder), primaryBatch = _a.batch, primaryFlushController = _a.flushController;\n var replicaBatch;\n var replica = configuration.replica;\n if (replica !== undefined) {\n replicaBatch = createRumBatch(replica.rumEndpointBuilder).batch;\n }\n function createRumBatch(endpointBuilder) {\n var flushController = createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n });\n var batch = new Batch(createHttpRequest(configuration, endpointBuilder, configuration.batchBytesLimit, reportError), flushController, configuration.messageBytesLimit);\n return {\n batch: batch,\n flushController: flushController,\n };\n }\n function withReplicaApplicationId(message) {\n return combine(message, { application: { id: replica.applicationId } });\n }\n return {\n flushObservable: primaryFlushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(withReplicaApplicationId(message));\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(withReplicaApplicationId(message), key);\n }\n },\n };\n}\n//# sourceMappingURL=startRumBatch.js.map","import { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core';\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\nexport var URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startUrlContexts(lifeCycle, locationChangeObservable, location) {\n var urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY);\n var previousViewUrl;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n urlContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n var viewUrl = location.href;\n urlContextHistory.add(buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }), startClocks.relative);\n previousViewUrl = viewUrl;\n });\n var locationChangeSubscription = locationChangeObservable.subscribe(function (_a) {\n var newLocation = _a.newLocation;\n var current = urlContextHistory.find();\n if (current) {\n var changeTime = relativeNow();\n urlContextHistory.closeActive(changeTime);\n urlContextHistory.add(buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }), changeTime);\n }\n });\n function buildUrlContext(_a) {\n var url = _a.url, referrer = _a.referrer;\n return {\n url: url,\n referrer: referrer,\n };\n }\n return {\n findUrl: function (startTime) { return urlContextHistory.find(startTime); },\n stop: function () {\n locationChangeSubscription.unsubscribe();\n urlContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=urlContexts.js.map","import { addEventListener, instrumentMethodAndCallOriginal, Observable, shallowClone, } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n var observable = new Observable(function () {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\n return function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return;\n }\n var newLocation = shallowClone(location);\n observable.notify({\n newLocation: newLocation,\n oldLocation: currentLocation,\n });\n currentLocation = newLocation;\n }\n return observable;\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n }).stop;\n var removeListener = addEventListener(configuration, window, \"popstate\" /* DOM_EVENT.POP_STATE */, onHistoryChange).stop;\n return {\n stop: function () {\n stopInstrumentingPushState();\n stopInstrumentingReplaceState();\n removeListener();\n },\n };\n}\nfunction trackHash(configuration, onHashChange) {\n return addEventListener(configuration, window, \"hashchange\" /* DOM_EVENT.HASH_CHANGE */, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { warnIfCustomerDataLimitReached, throttle, jsonStringify, computeBytesCount, noop, isExperimentalFeatureEnabled, SESSION_TIME_OUT_DELAY, ValueHistory, ExperimentalFeature, } from '@datadog/browser-core';\nexport var FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(lifeCycle, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: function () { return undefined; },\n getFeatureFlagBytesCount: function () { return 0; },\n addFeatureFlagEvaluation: noop,\n stop: noop,\n };\n }\n var featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY);\n var bytesCountCache = 0;\n var alreadyWarned = false;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n featureFlagContexts.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n featureFlagContexts.add({}, startClocks.relative);\n bytesCountCache = 0;\n });\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, \"feature flag evaluation\" /* CustomerDataType.FeatureFlag */);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelPendingComputation = _a.cancel;\n return {\n findFeatureFlagEvaluations: function (startTime) { return featureFlagContexts.find(startTime); },\n getFeatureFlagBytesCount: function () {\n var currentContext = featureFlagContexts.find();\n if (!currentContext) {\n return 0;\n }\n return bytesCountCache;\n },\n addFeatureFlagEvaluation: function (key, value) {\n var currentContext = featureFlagContexts.find();\n if (currentContext) {\n currentContext[key] = value;\n computeBytesCountThrottled(currentContext);\n }\n },\n stop: cancelPendingComputation,\n };\n}\n//# sourceMappingURL=featureFlagContext.js.map","import { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core';\nexport var MEASURES_PERIOD_DURATION = 10 * ONE_SECOND;\nvar currentPeriodMeasures;\nvar currentBatchMeasures;\nvar batchHasRumEvent;\nexport function startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batchFlushObservable) {\n var customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!customerDataTelemetryEnabled) {\n return;\n }\n initCurrentPeriodMeasures();\n initCurrentBatchMeasures();\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, !isEmptyObject(globalContextManager.get()) ? globalContextManager.getBytesCount() : 0);\n updateMeasure(currentBatchMeasures.userContextBytes, !isEmptyObject(userContextManager.get()) ? userContextManager.getBytesCount() : 0);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations();\n var hasFeatureFlagContext = includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext);\n updateMeasure(currentBatchMeasures.featureFlagBytes, hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0);\n });\n batchFlushObservable.subscribe(function (_a) {\n var bytesCount = _a.bytesCount, messagesCount = _a.messagesCount;\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return;\n }\n currentPeriodMeasures.batchCount += 1;\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount);\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount);\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes);\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes);\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes);\n initCurrentBatchMeasures();\n });\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION);\n}\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return;\n }\n addTelemetryDebug('Customer data measures', currentPeriodMeasures);\n initCurrentPeriodMeasures();\n}\nfunction createMeasure() {\n return { min: Infinity, max: 0, sum: 0 };\n}\nfunction updateMeasure(measure, value) {\n measure.sum += value;\n measure.min = Math.min(measure.min, value);\n measure.max = Math.max(measure.max, value);\n}\nfunction mergeMeasure(target, source) {\n target.sum += source.sum;\n target.min = Math.min(target.min, source.min);\n target.max = Math.max(target.max, source.max);\n}\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false;\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\n//# sourceMappingURL=startCustomerDataTelemetry.js.map","import { elapsed, ValueHistory, SESSION_TIME_OUT_DELAY, toServerDuration, addEventListeners, relativeNow, } from '@datadog/browser-core';\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport var MAX_PAGE_STATE_ENTRIES = 4000;\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport var MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500;\nexport var PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startPageStateHistory(configuration, maxPageStateEntriesSelectable) {\n if (maxPageStateEntriesSelectable === void 0) { maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE; }\n var pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES);\n var currentPageState;\n addPageState(getPageState(), relativeNow());\n var stopEventListeners = addEventListeners(configuration, window, [\n \"pageshow\" /* DOM_EVENT.PAGE_SHOW */,\n \"focus\" /* DOM_EVENT.FOCUS */,\n \"blur\" /* DOM_EVENT.BLUR */,\n \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */,\n \"resume\" /* DOM_EVENT.RESUME */,\n \"freeze\" /* DOM_EVENT.FREEZE */,\n \"pagehide\" /* DOM_EVENT.PAGE_HIDE */,\n ], function (event) {\n // Only get events fired by the browser to avoid false currentPageState changes done with custom events\n // cf: developer extension auto flush: https://github.com/DataDog/browser-sdk/blob/2f72bf05a672794c9e33965351964382a94c72ba/developer-extension/src/panel/flushEvents.ts#L11-L12\n if (event.isTrusted) {\n addPageState(computePageState(event), event.timeStamp);\n }\n }, { capture: true }).stop;\n function addPageState(nextPageState, startTime) {\n if (startTime === void 0) { startTime = relativeNow(); }\n if (nextPageState === currentPageState) {\n return;\n }\n currentPageState = nextPageState;\n pageStateHistory.closeActive(startTime);\n pageStateHistory.add({ state: currentPageState, startTime: startTime }, startTime);\n }\n return {\n findAll: function (eventStartTime, duration) {\n var pageStateEntries = pageStateHistory.findAll(eventStartTime, duration);\n if (pageStateEntries.length === 0) {\n return;\n }\n var pageStateServerEntries = [];\n // limit the number of entries to return\n var limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable);\n // loop page state entries backward to return the selected ones in desc order\n for (var index = pageStateEntries.length - 1; index >= limit; index--) {\n var pageState = pageStateEntries[index];\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n var relativeStartTime = elapsed(eventStartTime, pageState.startTime);\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n });\n }\n return pageStateServerEntries;\n },\n isInActivePageStateAt: function (startTime) {\n var pageStateEntry = pageStateHistory.find(startTime);\n return pageStateEntry !== undefined && pageStateEntry.state === \"active\" /* PageState.ACTIVE */;\n },\n addPageState: addPageState,\n stop: function () {\n stopEventListeners();\n pageStateHistory.stop();\n },\n };\n}\nfunction computePageState(event) {\n if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */) {\n return event.persisted ? \"frozen\" /* PageState.FROZEN */ : \"terminated\" /* PageState.TERMINATED */;\n }\n return getPageState();\n}\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return \"hidden\" /* PageState.HIDDEN */;\n }\n if (document.hasFocus()) {\n return \"active\" /* PageState.ACTIVE */;\n }\n return \"passive\" /* PageState.PASSIVE */;\n}\n//# sourceMappingURL=pageStateHistory.js.map","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core';\nexport function getSessionReplayUrl(configuration, _a) {\n var session = _a.session, viewContext = _a.viewContext, errorType = _a.errorType;\n var sessionId = session ? session.id : 'no-session-id';\n var parameters = [];\n if (errorType !== undefined) {\n parameters.push(\"error-type=\".concat(errorType));\n }\n if (viewContext) {\n parameters.push(\"seed=\".concat(viewContext.id));\n parameters.push(\"from=\".concat(viewContext.startClocks.timeStamp));\n }\n var origin = getDatadogSiteUrl(configuration);\n var path = \"/rum/replay/sessions/\".concat(sessionId);\n return \"\".concat(origin).concat(path, \"?\").concat(parameters.join('&'));\n}\nexport function getDatadogSiteUrl(rumConfiguration) {\n var site = rumConfiguration.site;\n var subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration);\n return \"https://\".concat(subdomain ? \"\".concat(subdomain, \".\") : '').concat(site);\n}\nfunction getSiteDefaultSubdomain(configuration) {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app';\n case INTAKE_SITE_STAGING:\n return 'dd';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getSessionReplayUrl.js.map","export var RecordType = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n};\nexport var NodeType = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n};\nexport var IncrementalSource = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n};\nexport var MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n};\nexport var MediaInteractionType = {\n Play: 0,\n Pause: 1,\n};\n//# sourceMappingURL=sessionReplayConstants.js.map","import { assign, timeStampNow } from '@datadog/browser-core';\nimport { RecordType } from '../../types';\nexport function assembleIncrementalSnapshot(source, data) {\n return {\n data: assign({\n source: source,\n }, data),\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n };\n}\n//# sourceMappingURL=assembly.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_ALLOW = 'dd-privacy-allow';\nexport var PRIVACY_CLASS_MASK = 'dd-privacy-mask';\nexport var PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input';\nexport var PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\n//# sourceMappingURL=constants.js.map","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core';\nimport { NodePrivacyLevel, PRIVACY_ATTR_NAME, PRIVACY_ATTR_VALUE_ALLOW, PRIVACY_ATTR_VALUE_MASK, PRIVACY_ATTR_VALUE_MASK_USER_INPUT, PRIVACY_ATTR_VALUE_HIDDEN, PRIVACY_CLASS_ALLOW, PRIVACY_CLASS_MASK, PRIVACY_CLASS_MASK_USER_INPUT, PRIVACY_CLASS_HIDDEN, FORM_PRIVATE_TAG_NAMES, CENSORED_STRING_MARK, } from '../../constants';\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100000;\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel) {\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n var privAttr = node.getAttribute(PRIVACY_ATTR_NAME);\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel) &&\n // Style tags are `overruled` (Use `hide` to enforce privacy)\n !isStyle) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n //
\n    request: {\n        method: GET | POST | PUT ...\n        url: ...,\n        headers: {\n            header1: ...\n        },\n        data: data\n    }\n    
\n * @param {object} access_info - AWS access credential info\n
\n    access_info: {\n        access_key: ...,\n        secret_key: ...,\n        session_token: ...\n    }\n    
\n * @param {object} [service_info] - AWS service type and region, optional,\n * if not provided then parse out from url\n
\n    service_info: {\n        service: ...,\n        region: ...\n    }\n    
\n *\n * @returns {object} Signed HTTP request\n */\n Signer.sign = function (request, accessInfo, serviceInfo) {\n request.headers = request.headers || {};\n if (request.body && !request.data) {\n throw new Error('The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.');\n }\n var requestToSign = __assign(__assign({}, request), { body: request.data, url: new URL(request.url) });\n var options = getOptions(requestToSign, accessInfo, serviceInfo);\n var signedRequest = signRequest(requestToSign, options);\n // Prior to using `signRequest`, Signer accepted urls as strings and outputted urls as string. Coerce the property\n // back to a string so as not to disrupt consumers of Signer.\n signedRequest.url = signedRequest.url.toString();\n // HTTP headers should be case insensitive but, to maintain parity with the previous Signer implementation and\n // limit the impact of this implementation swap, replace lowercased headers with title cased ones.\n signedRequest.headers.Authorization = signedRequest.headers.authorization;\n signedRequest.headers['X-Amz-Security-Token'] =\n signedRequest.headers['x-amz-security-token'];\n delete signedRequest.headers.authorization;\n delete signedRequest.headers['x-amz-security-token'];\n return signedRequest;\n };\n Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {\n var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n var presignable = {\n body: body,\n method: method,\n url: new URL(urlToSign),\n };\n var options = getOptions(presignable, accessInfo, serviceInfo, expiration);\n var signedUrl = presignUrl(presignable, options);\n if (accessInfo.session_token &&\n !sessionTokenRequiredInSigning(options.signingService)) {\n signedUrl.searchParams.append(TOKEN_QUERY_PARAM, accessInfo.session_token);\n }\n return signedUrl.toString();\n };\n return Signer;\n}());\nexport { Signer };\nvar getOptions = function (request, accessInfo, serviceInfo, expiration) {\n var _a = accessInfo !== null && accessInfo !== void 0 ? accessInfo : {}, access_key = _a.access_key, secret_key = _a.secret_key, session_token = _a.session_token;\n var _b = parseServiceInfo(request.url), urlRegion = _b.region, urlService = _b.service;\n var _c = serviceInfo !== null && serviceInfo !== void 0 ? serviceInfo : {}, _d = _c.region, region = _d === void 0 ? urlRegion : _d, _e = _c.service, service = _e === void 0 ? urlService : _e;\n var credentials = __assign({ accessKeyId: access_key, secretAccessKey: secret_key }, (sessionTokenRequiredInSigning(service)\n ? { sessionToken: session_token }\n : {}));\n return __assign({ credentials: credentials, signingDate: DateUtils.getDateWithClockOffset(), signingRegion: region, signingService: service }, (expiration && { expiration: expiration }));\n};\n// TODO: V6 investigate whether add to custom clients' general signer implementation.\nvar parseServiceInfo = function (url) {\n var _a;\n var host = url.host;\n var matched = (_a = host.match(AWS_ENDPOINT_REGEX)) !== null && _a !== void 0 ? _a : [];\n var parsed = matched.slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: parsed[0],\n region: parsed[1],\n };\n};\n// IoT service does not allow the session token in the canonical request\n// https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n// TODO: V6 investigate whether add to custom clients' general signer implementation.\nvar sessionTokenRequiredInSigning = function (service) {\n return service !== IOT_SERVICE_NAME;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddleware } from '../middleware/retry';\nimport { signingMiddleware } from '../middleware/signing';\nimport { userAgentMiddleware } from '../middleware/userAgent';\nimport { composeTransferHandler } from '../internal/composeTransferHandler';\nimport { fetchTransferHandler } from './fetch';\nexport var authenticatedHandler = composeTransferHandler(fetchTransferHandler, [\n userAgentMiddleware,\n retryMiddleware,\n signingMiddleware,\n]);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getDnsSuffix } from '../../clients/endpoints';\nimport { jitteredBackoff, getRetryDecider, } from '../../clients/middleware/retry';\nimport { parseJsonError } from '../../clients/serde/json';\nimport { getAmplifyUserAgent } from '../../Platform';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nvar SERVICE_NAME = 'mobiletargeting';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nvar endpointResolver = function (_a) {\n var region = _a.region;\n return ({\n url: new URL(\"https://pinpoint.\".concat(region, \".\").concat(getDnsSuffix(region))),\n });\n};\n/**\n * @internal\n */\nexport var defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver: endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n};\n/**\n * @internal\n */\nexport var getSharedHeaders = function () { return ({\n 'content-type': 'application/json',\n}); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { authenticatedHandler } from '../../clients/handlers/authenticated';\nimport { composeServiceApi } from '../../clients/internal/composeServiceApi';\nimport { extendedEncodeURIComponent } from '../../clients/middleware/signing/utils/extendedEncodeURIComponent';\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients/serde';\nimport { defaultConfig, getSharedHeaders } from './base';\nvar putEventsSerializer = function (_a, endpoint) {\n var ApplicationId = _a.ApplicationId, EventsRequest = _a.EventsRequest;\n var headers = getSharedHeaders();\n var url = new URL(endpoint.url);\n url.pathname = \"v1/apps/\".concat(extendedEncodeURIComponent(ApplicationId), \"/events\");\n var body = JSON.stringify(EventsRequest !== null && EventsRequest !== void 0 ? EventsRequest : {});\n return { method: 'POST', headers: headers, url: url, body: body };\n};\nvar putEventsDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, Results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseJsonError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseJsonBody(response)];\n case 3:\n Results = (_a.sent()).Results;\n return [2 /*return*/, {\n EventsResponse: { Results: Results },\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\n/**\n * @internal\n */\nexport var putEvents = composeServiceApi(authenticatedHandler, putEventsSerializer, putEventsDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { authenticatedHandler } from '../../clients/handlers/authenticated';\nimport { composeServiceApi } from '../../clients/internal/composeServiceApi';\nimport { extendedEncodeURIComponent } from '../../clients/middleware/signing/utils/extendedEncodeURIComponent';\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients/serde';\nimport { defaultConfig, getSharedHeaders } from './base';\nvar updateEndpointSerializer = function (_a, endpoint) {\n var ApplicationId = _a.ApplicationId, EndpointId = _a.EndpointId, EndpointRequest = _a.EndpointRequest;\n var headers = getSharedHeaders();\n var url = new URL(endpoint.url);\n url.pathname = \"v1/apps/\".concat(extendedEncodeURIComponent(ApplicationId), \"/endpoints/\").concat(extendedEncodeURIComponent(EndpointId));\n var body = JSON.stringify(EndpointRequest !== null && EndpointRequest !== void 0 ? EndpointRequest : {});\n return { method: 'PUT', headers: headers, url: url, body: body };\n};\nvar updateEndpointDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, _a, Message, RequestID;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseJsonError(response)];\n case 1:\n error = _b.sent();\n throw error;\n case 2: return [4 /*yield*/, parseJsonBody(response)];\n case 3:\n _a = _b.sent(), Message = _a.Message, RequestID = _a.RequestID;\n return [2 /*return*/, {\n MessageBody: {\n Message: Message,\n RequestID: RequestID,\n },\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\n/**\n * @internal\n */\nexport var updateEndpoint = composeServiceApi(authenticatedHandler, updateEndpointSerializer, updateEndpointDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Category, getAmplifyUserAgentObject, getAmplifyUserAgent, } from '@aws-amplify/core';\nexport function getAnalyticsUserAgent(action) {\n return getAmplifyUserAgentObject({\n category: Category.Analytics,\n action: action,\n });\n}\nexport function getAnalyticsUserAgentString(action) {\n return getAmplifyUserAgent({\n category: Category.Analytics,\n action: action,\n });\n}\n//# sourceMappingURL=UserAgent.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar isAppInForeground = function () {\n return true;\n};\nexport { isAppInForeground };\n//# sourceMappingURL=AppUtils.js.map","import { __awaiter, __generator, __read, __spread } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { putEvents, } from '@aws-amplify/core/internals/aws-clients/pinpoint';\nimport { isAppInForeground } from '../utils/AppUtils';\nimport { getAnalyticsUserAgentString } from '../utils/UserAgent';\nvar logger = new Logger('EventsBuffer');\nvar RETRYABLE_CODES = [429, 500];\nvar ACCEPTED_CODES = [202];\nvar EventsBuffer = /** @class */ (function () {\n function EventsBuffer(config) {\n this._pause = false;\n this._flush = false;\n logger.debug('Instantiating buffer with config:', config);\n this._buffer = [];\n this._config = config;\n this._sendBatch = this._sendBatch.bind(this);\n this._startLoop();\n }\n EventsBuffer.prototype.push = function (event) {\n var _a;\n // if the buffer is currently at the configured limit, pushing would exceed it\n if (this._buffer.length >= this._config.bufferSize) {\n logger.debug('Exceeded analytics events buffer size');\n return event.handlers.reject(new Error('Exceeded the size of analytics events buffer'));\n }\n var eventId = event.params.event.eventId;\n var bufferElement = (_a = {}, _a[eventId] = event, _a);\n this._buffer.push(bufferElement);\n };\n EventsBuffer.prototype.pause = function () {\n this._pause = true;\n };\n EventsBuffer.prototype.resume = function () {\n this._pause = false;\n };\n EventsBuffer.prototype.flush = function () {\n this._flush = true;\n };\n EventsBuffer.prototype._startLoop = function () {\n if (this._interval) {\n clearInterval(this._interval);\n }\n var flushInterval = this._config.flushInterval;\n this._interval = setInterval(this._sendBatch, flushInterval);\n };\n EventsBuffer.prototype._sendBatch = function () {\n var bufferLength = this._buffer.length;\n if (this._flush && !bufferLength) {\n clearInterval(this._interval);\n }\n // Do not send the batch of events if\n // the Buffer is paused or is empty or the App is not in the foreground\n // Apps should be in the foreground since\n // the OS may restrict access to the network in the background\n if (this._pause || !bufferLength || !isAppInForeground()) {\n return;\n }\n var flushSize = this._config.flushSize;\n var batchSize = Math.min(flushSize, bufferLength);\n var bufferSubset = this._buffer.splice(0, batchSize);\n this._putEvents(bufferSubset);\n };\n EventsBuffer.prototype._putEvents = function (buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var eventMap, batchEventParams, _a, credentials, region, data, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n eventMap = this._bufferToMap(buffer);\n batchEventParams = this._generateBatchEventParams(eventMap);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this._config, credentials = _a.credentials, region = _a.region;\n return [4 /*yield*/, putEvents({\n credentials: credentials,\n region: region,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n }, batchEventParams)];\n case 2:\n data = _b.sent();\n this._processPutEventsSuccessResponse(data, eventMap);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _b.sent();\n return [2 /*return*/, this._handlePutEventsFailure(err_1, eventMap)];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n EventsBuffer.prototype._generateBatchEventParams = function (eventMap) {\n var batchEventParams = {\n ApplicationId: '',\n EventsRequest: {\n BatchItem: {},\n },\n };\n Object.values(eventMap).forEach(function (item) {\n var params = item.params;\n var event = params.event, timestamp = params.timestamp, config = params.config;\n var name = event.name, attributes = event.attributes, metrics = event.metrics, eventId = event.eventId, session = event.session;\n var appId = config.appId, endpointId = config.endpointId;\n var batchItem = batchEventParams.EventsRequest.BatchItem;\n batchEventParams.ApplicationId = batchEventParams.ApplicationId || appId;\n if (!batchItem[endpointId]) {\n batchItem[endpointId] = {\n Endpoint: {},\n Events: {},\n };\n }\n batchItem[endpointId].Events[eventId] = {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session,\n };\n });\n return batchEventParams;\n };\n EventsBuffer.prototype._handlePutEventsFailure = function (err, eventMap) {\n logger.debug('_putEvents Failed: ', err);\n var statusCode = err.$metadata && err.$metadata.httpStatusCode;\n if (RETRYABLE_CODES.includes(statusCode)) {\n var retryableEvents = Object.values(eventMap);\n this._retry(retryableEvents);\n return;\n }\n };\n EventsBuffer.prototype._processPutEventsSuccessResponse = function (data, eventMap) {\n var _a;\n var _b = ((_a = data.EventsResponse) !== null && _a !== void 0 ? _a : {}).Results, Results = _b === void 0 ? {} : _b;\n var retryableEvents = [];\n Object.entries(Results).forEach(function (_a) {\n var _b = __read(_a, 2), endpointId = _b[0], endpointValues = _b[1];\n var _c;\n var responses = (_c = endpointValues.EventsItemResponse) !== null && _c !== void 0 ? _c : {};\n Object.entries(responses).forEach(function (_a) {\n var _b, _c;\n var _d = __read(_a, 2), eventId = _d[0], eventValues = _d[1];\n var eventObject = eventMap[eventId];\n if (!eventObject) {\n return;\n }\n var _e = eventValues !== null && eventValues !== void 0 ? eventValues : {}, StatusCode = _e.StatusCode, Message = _e.Message;\n // manually crafting handlers response to keep API consistant\n var response = {\n EventsResponse: {\n Results: (_b = {},\n _b[endpointId] = {\n EventsItemResponse: (_c = {},\n _c[eventId] = { StatusCode: StatusCode, Message: Message },\n _c),\n },\n _b),\n },\n };\n if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {\n eventObject.handlers.resolve(response);\n return;\n }\n if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {\n retryableEvents.push(eventObject);\n return;\n }\n var name = eventObject.params.event.name;\n logger.error(\"event \" + eventId + \" : \" + name + \" failed with error: \" + Message);\n return eventObject.handlers.reject(response);\n });\n });\n if (retryableEvents.length) {\n this._retry(retryableEvents);\n }\n };\n EventsBuffer.prototype._retry = function (retryableEvents) {\n var _a;\n // retryable events that haven't reached the resendLimit\n var eligibleEvents = [];\n retryableEvents.forEach(function (event) {\n var _a;\n var params = event.params;\n var _b = params.event, eventId = _b.eventId, name = _b.name;\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending event \" + eventId + \" : \" + name + \" with \" + params.resendLimit + \" retry attempts remaining\");\n eligibleEvents.push((_a = {}, _a[eventId] = event, _a));\n return;\n }\n logger.debug(\"no retry attempts remaining for event \" + eventId + \" : \" + name);\n });\n // add the events to the front of the buffer\n (_a = this._buffer).unshift.apply(_a, __spread(eligibleEvents));\n };\n // convert buffer to map, i.e. { eventId1: { params, handler }, eventId2: { params, handlers } }\n // this allows us to easily access the handlers after receiving a batch response\n EventsBuffer.prototype._bufferToMap = function (buffer) {\n return buffer.reduce(function (acc, curVal) {\n var _a = __read(Object.entries(curVal), 1), _b = __read(_a[0], 2), key = _b[0], value = _b[1];\n acc[key] = value;\n return acc;\n }, {});\n };\n return EventsBuffer;\n}());\nexport default EventsBuffer;\n//# sourceMappingURL=EventBuffer.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { Cache } from '@aws-amplify/cache';\nimport { ConsoleLogger as Logger, ClientDevice, Credentials, Signer, Hub, transferKeyToLowerCase, transferKeyToUpperCase, AnalyticsAction, } from '@aws-amplify/core';\nimport { putEvents, updateEndpoint, } from '@aws-amplify/core/internals/aws-clients/pinpoint';\nimport { v1 as uuid } from 'uuid';\nimport { getAnalyticsUserAgentString } from '../utils/UserAgent';\nimport EventBuffer from './EventBuffer';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAnalyticsEvent = function (event, data) {\n Hub.dispatch('analytics', { event: event, data: data }, 'Analytics', AMPLIFY_SYMBOL);\n};\nvar logger = new Logger('AWSPinpointProvider');\nvar RETRYABLE_CODES = [429, 500];\nvar ACCEPTED_CODES = [202];\nvar FORBIDDEN_CODE = 403;\nvar MOBILE_SERVICE_NAME = 'mobiletargeting';\nvar EXPIRED_TOKEN_CODE = 'ExpiredTokenException';\nvar UPDATE_ENDPOINT = '_update_endpoint';\nvar SESSION_START = '_session.start';\nvar SESSION_STOP = '_session.stop';\nvar BEACON_SUPPORTED = typeof navigator !== 'undefined' &&\n navigator &&\n typeof navigator.sendBeacon === 'function';\n// events buffer\nvar BUFFER_SIZE = 1000;\nvar FLUSH_SIZE = 100;\nvar FLUSH_INTERVAL = 5 * 1000; // 5s\nvar RESEND_LIMIT = 5;\n// params: { event: {name: , .... }, timeStamp, config, resendLimits }\nvar AWSPinpointProvider = /** @class */ (function () {\n function AWSPinpointProvider(config) {\n this._endpointGenerating = true;\n this._endpointUpdateInProgress = false;\n this._buffer = null;\n this._endpointBuffer = [];\n this._config = config ? config : {};\n this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE;\n this._config.flushSize = this._config.flushSize || FLUSH_SIZE;\n this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;\n this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT;\n this._clientInfo = ClientDevice.clientInfo();\n }\n /**\n * get the category of the plugin\n */\n AWSPinpointProvider.prototype.getCategory = function () {\n return AWSPinpointProvider.category;\n };\n /**\n * get provider name of the plugin\n */\n AWSPinpointProvider.prototype.getProviderName = function () {\n return AWSPinpointProvider.providerName;\n };\n /**\n * configure the plugin\n * @param {Object} config - configuration\n */\n AWSPinpointProvider.prototype.configure = function (config) {\n var _this = this;\n logger.debug('configure Analytics', config);\n var conf = config || {};\n this._config = Object.assign({}, this._config, conf);\n // If autoSessionRecord is enabled, we need to wait for the endpoint to be\n // updated before sending any events. See `sendEvents` in `Analytics.ts`\n this._endpointGenerating = !!config['autoSessionRecord'];\n if (this._config.appId && !this._config.disabled) {\n if (!this._config.endpointId) {\n var cacheKey = this.getProviderName() + '_' + this._config.appId;\n this._getEndpointId(cacheKey)\n .then(function (endpointId) {\n logger.debug('setting endpoint id from the cache', endpointId);\n _this._config.endpointId = endpointId;\n dispatchAnalyticsEvent('pinpointProvider_configured', null);\n })\n .catch(function (err) {\n logger.debug('Failed to generate endpointId', err);\n });\n }\n else {\n dispatchAnalyticsEvent('pinpointProvider_configured', null);\n }\n }\n else {\n this._flushBuffer();\n }\n return this._config;\n };\n /**\n * record an event\n * @param {Object} params - the params of an event\n */\n AWSPinpointProvider.prototype.record = function (params, handlers) {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, timestamp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('_public record', params);\n return [4 /*yield*/, this._getCredentials()];\n case 1:\n credentials = _a.sent();\n if (!credentials || !this._config.appId || !this._config.region) {\n logger.debug('cannot send events without credentials, applicationId or region');\n return [2 /*return*/, handlers.reject(new Error('No credentials, applicationId or region'))];\n }\n this._init(credentials);\n timestamp = new Date().getTime();\n // attach the session and eventId\n this._generateSession(params);\n params.event.eventId = uuid();\n Object.assign(params, { timestamp: timestamp, config: this._config });\n if (params.event.immediate) {\n return [2 /*return*/, this._send(params, handlers)];\n }\n else {\n this._putToBuffer(params, handlers);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSPinpointProvider.prototype._sendEndpointUpdate = function (endpointObject) {\n return __awaiter(this, void 0, void 0, function () {\n var next;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this._endpointUpdateInProgress) {\n this._endpointBuffer.push(endpointObject);\n return [2 /*return*/];\n }\n this._endpointUpdateInProgress = true;\n return [4 /*yield*/, this._updateEndpoint(endpointObject)];\n case 1:\n _a.sent();\n next = this._endpointBuffer.shift();\n this._endpointUpdateInProgress = false;\n next && this._sendEndpointUpdate(next);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @private\n * @param params - params for event recording\n * Put events into buffer\n */\n AWSPinpointProvider.prototype._putToBuffer = function (params, handlers) {\n var _a;\n if (params.event.name === UPDATE_ENDPOINT) {\n this._sendEndpointUpdate({ params: params, handlers: handlers });\n return;\n }\n (_a = this._buffer) === null || _a === void 0 ? void 0 : _a.push({ params: params, handlers: handlers });\n };\n AWSPinpointProvider.prototype._generateSession = function (params) {\n this._sessionId = this._sessionId || uuid();\n var event = params.event;\n switch (event.name) {\n case SESSION_START:\n // refresh the session id and session start time\n this._sessionStartTimestamp = new Date().getTime();\n this._sessionId = uuid();\n event.session = {\n Id: this._sessionId,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(),\n };\n break;\n case SESSION_STOP:\n var stopTimestamp = new Date().getTime();\n this._sessionStartTimestamp =\n this._sessionStartTimestamp || new Date().getTime();\n this._sessionId = this._sessionId || uuid();\n event.session = {\n Id: this._sessionId,\n Duration: stopTimestamp - this._sessionStartTimestamp,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(),\n StopTimestamp: new Date(stopTimestamp).toISOString(),\n };\n this._sessionId = undefined;\n this._sessionStartTimestamp = undefined;\n break;\n default:\n this._sessionStartTimestamp =\n this._sessionStartTimestamp || new Date().getTime();\n this._sessionId = this._sessionId || uuid();\n event.session = {\n Id: this._sessionId,\n StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(),\n };\n }\n };\n AWSPinpointProvider.prototype._send = function (params, handlers) {\n return __awaiter(this, void 0, void 0, function () {\n var event;\n return __generator(this, function (_a) {\n event = params.event;\n switch (event.name) {\n case UPDATE_ENDPOINT:\n return [2 /*return*/, this._updateEndpoint({ params: params, handlers: handlers })];\n case SESSION_STOP:\n return [2 /*return*/, this._pinpointSendStopSession(params, handlers)];\n default:\n return [2 /*return*/, this._pinpointPutEvents(params, handlers)];\n }\n return [2 /*return*/];\n });\n });\n };\n AWSPinpointProvider.prototype._generateBatchItemContext = function (params) {\n var _a, _b;\n var event = params.event, timestamp = params.timestamp, config = params.config;\n var name = event.name, attributes = event.attributes, metrics = event.metrics, eventId = event.eventId, session = event.session;\n var appId = config.appId, endpointId = config.endpointId;\n var endpointContext = {};\n return {\n ApplicationId: appId,\n EventsRequest: {\n BatchItem: (_a = {},\n _a[endpointId] = {\n Endpoint: endpointContext,\n Events: (_b = {},\n _b[eventId] = {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session,\n },\n _b),\n },\n _a),\n },\n };\n };\n AWSPinpointProvider.prototype._pinpointPutEvents = function (params, handlers) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function () {\n var eventId, endpointId, eventParams, _f, credentials, region, data, _g, StatusCode, Message, err_1;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n eventId = params.event.eventId, endpointId = params.config.endpointId;\n eventParams = this._generateBatchItemContext(params);\n _h.label = 1;\n case 1:\n _h.trys.push([1, 3, , 4]);\n _f = this._config, credentials = _f.credentials, region = _f.region;\n return [4 /*yield*/, putEvents({\n credentials: credentials,\n region: region,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n }, eventParams)];\n case 2:\n data = _h.sent();\n _g = (_e = (_d = (_c = (_b = (_a = data.EventsResponse) === null || _a === void 0 ? void 0 : _a.Results) === null || _b === void 0 ? void 0 : _b[endpointId]) === null || _c === void 0 ? void 0 : _c.EventsItemResponse) === null || _d === void 0 ? void 0 : _d[eventId]) !== null && _e !== void 0 ? _e : {}, StatusCode = _g.StatusCode, Message = _g.Message;\n if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {\n logger.debug('record event success. ', data);\n return [2 /*return*/, handlers.resolve(data)];\n }\n else if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {\n // TODO: v6 integrate retry to the service handler retryDecider\n this._retry(params, handlers);\n }\n else {\n logger.error(\"Event \" + eventId + \" is not accepted, the error is \" + Message);\n return [2 /*return*/, handlers.reject(data)];\n }\n return [3 /*break*/, 4];\n case 3:\n err_1 = _h.sent();\n this._eventError(err_1);\n return [2 /*return*/, handlers.reject(err_1)];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSPinpointProvider.prototype._pinpointSendStopSession = function (params, handlers) {\n if (!BEACON_SUPPORTED) {\n this._pinpointPutEvents(params, handlers);\n return;\n }\n var eventParams = this._generateBatchItemContext(params);\n var region = this._config.region;\n var ApplicationId = eventParams.ApplicationId, EventsRequest = eventParams.EventsRequest;\n var accessInfo = {\n secret_key: this._config.credentials.secretAccessKey,\n access_key: this._config.credentials.accessKeyId,\n session_token: this._config.credentials.sessionToken,\n };\n var url = \"https://pinpoint.\" + region + \".amazonaws.com/v1/apps/\" + ApplicationId + \"/events/legacy\";\n var body = JSON.stringify(EventsRequest);\n var method = 'POST';\n var request = {\n url: url,\n body: body,\n method: method,\n };\n var serviceInfo = { region: region, service: MOBILE_SERVICE_NAME };\n var requestUrl = Signer.signUrl(request, accessInfo, serviceInfo);\n var success = navigator.sendBeacon(requestUrl, body);\n if (success) {\n return handlers.resolve('sendBeacon success');\n }\n return handlers.reject('sendBeacon failure');\n };\n AWSPinpointProvider.prototype._retry = function (params, handlers) {\n var resendLimit = params.config.resendLimit;\n // For backward compatibility\n params.resendLimit =\n typeof params.resendLimit === 'number' ? params.resendLimit : resendLimit;\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending event \" + params.eventName + \" with \" + params.resendLimit + \" retry times left\");\n this._pinpointPutEvents(params, handlers);\n }\n else {\n logger.debug(\"retry times used up for event \" + params.eventName);\n }\n };\n AWSPinpointProvider.prototype._updateEndpoint = function (endpointObject) {\n return __awaiter(this, void 0, void 0, function () {\n var params, handlers, config, event, appId, endpointId, request, update_params, _a, credentials, region, data, err_2, failureData;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n params = endpointObject.params, handlers = endpointObject.handlers;\n config = params.config, event = params.event;\n appId = config.appId, endpointId = config.endpointId;\n request = this._endpointRequest(config, transferKeyToLowerCase(event, [], ['attributes', 'userAttributes', 'Attributes', 'UserAttributes']));\n update_params = {\n ApplicationId: appId,\n EndpointId: endpointId,\n EndpointRequest: request,\n };\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this._config, credentials = _a.credentials, region = _a.region;\n return [4 /*yield*/, updateEndpoint({\n credentials: credentials,\n region: region,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.UpdateEndpoint),\n }, update_params)];\n case 2:\n data = _b.sent();\n logger.debug('updateEndpoint success', data);\n this._endpointGenerating = false;\n this._resumeBuffer();\n handlers.resolve(data);\n return [2 /*return*/];\n case 3:\n err_2 = _b.sent();\n failureData = {\n err: err_2,\n update_params: update_params,\n endpointObject: endpointObject,\n };\n return [2 /*return*/, this._handleEndpointUpdateFailure(failureData)];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSPinpointProvider.prototype._handleEndpointUpdateFailure = function (failureData) {\n return __awaiter(this, void 0, void 0, function () {\n var err, endpointObject, statusCode, exponential;\n return __generator(this, function (_a) {\n err = failureData.err, endpointObject = failureData.endpointObject;\n statusCode = err.$metadata && err.$metadata.httpStatusCode;\n logger.debug('updateEndpoint error', err);\n switch (statusCode) {\n case FORBIDDEN_CODE:\n return [2 /*return*/, this._handleEndpointUpdateForbidden(failureData)];\n default:\n if (RETRYABLE_CODES.includes(statusCode)) {\n exponential = true;\n return [2 /*return*/, this._retryEndpointUpdate(endpointObject, exponential)];\n }\n logger.error('updateEndpoint failed', err);\n endpointObject.handlers.reject(err);\n }\n return [2 /*return*/];\n });\n });\n };\n AWSPinpointProvider.prototype._handleEndpointUpdateForbidden = function (failureData) {\n var err = failureData.err, endpointObject = failureData.endpointObject;\n var code = err.code, retryable = err.retryable;\n if (code !== EXPIRED_TOKEN_CODE && !retryable) {\n return endpointObject.handlers.reject(err);\n }\n this._retryEndpointUpdate(endpointObject);\n };\n AWSPinpointProvider.prototype._retryEndpointUpdate = function (endpointObject, exponential) {\n if (exponential === void 0) { exponential = false; }\n logger.debug('_retryEndpointUpdate', endpointObject);\n var params = endpointObject.params;\n // TODO: implement retry with exp back off once exp function is available\n var resendLimit = params.config.resendLimit;\n params.resendLimit =\n typeof params.resendLimit === 'number' ? params.resendLimit : resendLimit;\n if (params.resendLimit-- > 0) {\n logger.debug(\"resending endpoint update \" + params.event.eventId + \" with \" + params.resendLimit + \" retry attempts remaining\");\n // insert at the front of endpointBuffer\n this._endpointBuffer.length\n ? this._endpointBuffer.unshift(endpointObject)\n : this._updateEndpoint(endpointObject);\n return;\n }\n logger.warn(\"resending endpoint update \" + params.event.eventId + \" failed after \" + params.config.resendLimit + \" attempts\");\n if (this._endpointGenerating) {\n logger.error('Initial endpoint update failed. ');\n }\n };\n /**\n * @private\n * @param config\n * Configure credentials and init buffer\n */\n AWSPinpointProvider.prototype._init = function (credentials) {\n return __awaiter(this, void 0, void 0, function () {\n var identityId;\n return __generator(this, function (_a) {\n logger.debug('init provider');\n if (this._config.credentials &&\n this._config.credentials.sessionToken === credentials.sessionToken &&\n this._config.credentials.identityId === credentials.identityId) {\n logger.debug('no change for aws credentials, directly return from init');\n return [2 /*return*/];\n }\n identityId = this._config.credentials\n ? this._config.credentials.identityId\n : null;\n this._config.credentials = credentials;\n if (!this._bufferExists() || identityId !== credentials.identityId) {\n // if the identity has changed, flush the buffer and instantiate a new one\n // this will cause the old buffer to send any remaining events\n // with the old credentials and then stop looping and shortly thereafter get picked up by GC\n this._initBuffer();\n }\n return [2 /*return*/];\n });\n });\n };\n AWSPinpointProvider.prototype._bufferExists = function () {\n return this._buffer && this._buffer instanceof EventBuffer;\n };\n AWSPinpointProvider.prototype._initBuffer = function () {\n if (this._bufferExists()) {\n this._flushBuffer();\n }\n this._buffer = new EventBuffer(this._config);\n // if the first endpoint update hasn't yet resolved pause the buffer to\n // prevent race conditions. It will be resumed as soon as that request succeeds\n if (this._endpointGenerating) {\n this._buffer.pause();\n }\n };\n AWSPinpointProvider.prototype._flushBuffer = function () {\n var _a;\n if (this._bufferExists()) {\n (_a = this._buffer) === null || _a === void 0 ? void 0 : _a.flush();\n this._buffer = null;\n }\n };\n AWSPinpointProvider.prototype._resumeBuffer = function () {\n var _a;\n if (this._bufferExists()) {\n (_a = this._buffer) === null || _a === void 0 ? void 0 : _a.resume();\n }\n };\n AWSPinpointProvider.prototype._getEndpointId = function (cacheKey) {\n return __awaiter(this, void 0, void 0, function () {\n var endpointId, ttl, expiration;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Cache.getItem(cacheKey)];\n case 1:\n endpointId = _a.sent();\n logger.debug('endpointId from cache', endpointId, 'type', typeof endpointId);\n if (!endpointId) {\n endpointId = uuid();\n ttl = 1000 * 60 * 60 * 24 * 365 * 100;\n expiration = new Date().getTime() + ttl;\n Cache.setItem(cacheKey, endpointId, {\n expires: expiration,\n priority: 1,\n });\n }\n return [2 /*return*/, endpointId];\n }\n });\n });\n };\n /**\n * EndPoint request\n * @return {Object} - The request of updating endpoint\n */\n AWSPinpointProvider.prototype._endpointRequest = function (config, event) {\n var credentials = config.credentials;\n var clientInfo = this._clientInfo || {};\n var clientContext = config.clientContext || {};\n // for now we have three different ways for default endpoint configurations\n // clientInfo\n // clientContext (deprecated)\n // config.endpoint\n var defaultEndpointConfig = config.endpoint || {};\n var demographicByClientInfo = {\n appVersion: clientInfo.appVersion,\n make: clientInfo.make,\n model: clientInfo.model,\n modelVersion: clientInfo.version,\n platform: clientInfo.platform,\n };\n // for backward compatibility\n var clientId = clientContext.clientId, appTitle = clientContext.appTitle, appVersionName = clientContext.appVersionName, appVersionCode = clientContext.appVersionCode, appPackageName = clientContext.appPackageName, demographicByClientContext = __rest(clientContext, [\"clientId\", \"appTitle\", \"appVersionName\", \"appVersionCode\", \"appPackageName\"]);\n var channelType = event.address\n ? clientInfo.platform === 'android'\n ? 'GCM'\n : 'APNS'\n : undefined;\n var tmp = __assign(__assign(__assign({ channelType: channelType, requestId: uuid(), effectiveDate: new Date().toISOString() }, defaultEndpointConfig), event), { attributes: __assign(__assign({}, defaultEndpointConfig.attributes), event.attributes), demographic: __assign(__assign(__assign(__assign({}, demographicByClientInfo), demographicByClientContext), defaultEndpointConfig.demographic), event.demographic), location: __assign(__assign({}, defaultEndpointConfig.location), event.location), metrics: __assign(__assign({}, defaultEndpointConfig.metrics), event.metrics), user: {\n userId: event.userId ||\n defaultEndpointConfig.userId ||\n credentials.identityId,\n userAttributes: __assign(__assign({}, defaultEndpointConfig.userAttributes), event.userAttributes),\n } });\n // eliminate unnecessary params\n var userId = tmp.userId, userAttributes = tmp.userAttributes, name = tmp.name, session = tmp.session, eventId = tmp.eventId, immediate = tmp.immediate, ret = __rest(tmp, [\"userId\", \"userAttributes\", \"name\", \"session\", \"eventId\", \"immediate\"]);\n return transferKeyToUpperCase(ret, [], ['metrics', 'userAttributes', 'attributes']);\n };\n AWSPinpointProvider.prototype._eventError = function (err) {\n logger.error('record event failed.', err);\n logger.warn(\"Please ensure you have updated your Pinpoint IAM Policy \" +\n \"with the Action: \\\"mobiletargeting:PutEvents\\\" \" +\n \"in order to record events\");\n };\n AWSPinpointProvider.prototype._getCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, null];\n logger.debug('set credentials for analytics', credentials);\n return [2 /*return*/, Credentials.shear(credentials)];\n case 2:\n err_3 = _a.sent();\n logger.debug('ensure credentials error', err_3);\n return [2 /*return*/, null];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSPinpointProvider.category = 'Analytics';\n AWSPinpointProvider.providerName = 'AWSPinpoint';\n return AWSPinpointProvider;\n}());\nexport { AWSPinpointProvider };\n//# sourceMappingURL=AWSPinpointProvider.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __read, __spread } from \"tslib\";\nvar lists = [];\nvar MethodEmbed = /** @class */ (function () {\n function MethodEmbed(context, methodName) {\n this.context = context;\n this.methodName = methodName;\n this._originalMethod = context[methodName].bind(context);\n }\n MethodEmbed.add = function (context, methodName, methodOverride) {\n getInstance(context, methodName).set(methodOverride);\n };\n MethodEmbed.remove = function (context, methodName) {\n getInstance(context, methodName).remove();\n };\n MethodEmbed.prototype.set = function (methodOverride) {\n var _this = this;\n this.context[this.methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return methodOverride(_this._originalMethod.apply(_this, __spread(args)));\n };\n };\n MethodEmbed.prototype.remove = function () {\n this.context[this.methodName] = this._originalMethod;\n };\n return MethodEmbed;\n}());\nexport { MethodEmbed };\nfunction getInstance(context, methodName) {\n var instance = lists.filter(function (h) { return h.context === context && h.methodName === methodName; })[0];\n if (!instance) {\n instance = new MethodEmbed(context, methodName);\n lists.push(instance);\n }\n return instance;\n}\n//# sourceMappingURL=MethodEmbed.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { MethodEmbed } from '../utils/MethodEmbed';\nimport { ConsoleLogger as Logger, browserOrNode } from '@aws-amplify/core';\nvar logger = new Logger('PageViewTracker');\nvar PREV_URL_KEY = 'aws-amplify-analytics-prevUrl';\nvar getUrl = function () {\n if (!browserOrNode().isBrowser)\n return '';\n else\n return window.location.origin + window.location.pathname;\n};\nvar defaultOpts = {\n enable: false,\n provider: 'AWSPinpoint',\n getUrl: getUrl,\n};\nvar PageViewTracker = /** @class */ (function () {\n function PageViewTracker(tracker, opts) {\n logger.debug('initialize pageview tracker with opts', opts);\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._hasEnabled = false;\n this._trackFunc = this._trackFunc.bind(this);\n if (this._config.type === 'SPA') {\n this._pageViewTrackSPA();\n }\n else {\n this._pageViewTrackDefault();\n }\n }\n PageViewTracker.prototype.configure = function (opts) {\n Object.assign(this._config, opts);\n // if spa, need to remove those listeners if disabled\n if (this._config.type === 'SPA') {\n this._pageViewTrackSPA();\n }\n return this._config;\n };\n PageViewTracker.prototype._isSameUrl = function () {\n var prevUrl = sessionStorage.getItem(PREV_URL_KEY);\n var curUrl = this._config.getUrl();\n if (prevUrl === curUrl) {\n logger.debug('the url is same');\n return true;\n }\n else\n return false;\n };\n PageViewTracker.prototype._pageViewTrackDefault = function () {\n return __awaiter(this, void 0, void 0, function () {\n var url, customAttrs, _a, attributes;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!browserOrNode().isBrowser ||\n !window.addEventListener ||\n !window.sessionStorage) {\n logger.debug('not in the supported web enviroment');\n return [2 /*return*/];\n }\n url = this._config.getUrl();\n if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._config.attributes()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n case 3:\n customAttrs = _a;\n attributes = Object.assign({\n url: url,\n }, customAttrs);\n if (this._config.enable && !this._isSameUrl()) {\n this._tracker({\n name: this._config.eventName || 'pageView',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug('Failed to record the page view event', e);\n });\n sessionStorage.setItem(PREV_URL_KEY, url);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n PageViewTracker.prototype._trackFunc = function () {\n return __awaiter(this, void 0, void 0, function () {\n var url, customAttrs, _a, attributes;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!browserOrNode().isBrowser ||\n !window.addEventListener ||\n !history.pushState ||\n !window.sessionStorage) {\n logger.debug('not in the supported web enviroment');\n return [2 /*return*/];\n }\n url = this._config.getUrl();\n if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._config.attributes()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n case 3:\n customAttrs = _a;\n attributes = Object.assign({\n url: url,\n }, customAttrs);\n if (!this._isSameUrl()) {\n this._tracker({\n name: this._config.eventName || 'pageView',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug('Failed to record the page view event', e);\n });\n sessionStorage.setItem(PREV_URL_KEY, url);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n PageViewTracker.prototype._pageViewTrackSPA = function () {\n if (!browserOrNode().isBrowser ||\n !window.addEventListener ||\n !history.pushState) {\n logger.debug('not in the supported web enviroment');\n return;\n }\n if (this._config.enable && !this._hasEnabled) {\n MethodEmbed.add(history, 'pushState', this._trackFunc);\n MethodEmbed.add(history, 'replaceState', this._trackFunc);\n window.addEventListener('popstate', this._trackFunc);\n this._trackFunc();\n this._hasEnabled = true;\n }\n else {\n MethodEmbed.remove(history, 'pushState');\n MethodEmbed.remove(history, 'replaceState');\n window.removeEventListener('popstate', this._trackFunc);\n this._hasEnabled = false;\n }\n };\n return PageViewTracker;\n}());\nexport { PageViewTracker };\n//# sourceMappingURL=PageViewTracker.js.map","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { browserOrNode } from '@aws-amplify/core';\nvar proto = browserOrNode().isBrowser && window['Element']\n ? window['Element'].prototype\n : null;\nvar nativeMatches = proto\n ? proto.matches ||\n // @ts-ignore\n proto.matchesSelector ||\n // @ts-ignore\n proto.webkitMatchesSelector ||\n // @ts-ignore\n proto.mozMatchesSelector ||\n // @ts-ignore\n proto.msMatchesSelector ||\n // @ts-ignore\n proto.oMatchesSelector\n : null;\n/**\n * Tests if a DOM elements matches any of the test DOM elements or selectors.\n * @param {Element} element The DOM element to test.\n * @param {Element|string|Array} test A DOM element, a CSS\n * selector, or an array of DOM elements or CSS selectors to match against.\n * @return {boolean} True of any part of the test matches.\n */\nexport function matches(element, test) {\n // Validate input.\n if (element && element.nodeType === 1 && test) {\n // if test is a string or DOM element test it.\n if (typeof test === 'string' || test.nodeType === 1) {\n return (element === test || matchesSelector(element, /** @type {string} */ test));\n }\n else if ('length' in test) {\n // if it has a length property iterate over the items\n // and return true if any match.\n for (var i = 0, item = void 0; (item = test[i]); i++) {\n if (element === item || matchesSelector(element, item))\n return true;\n }\n }\n }\n // Still here? Return false\n return false;\n}\n/**\n * Tests whether a DOM element matches a selector. This polyfills the native\n * Element.prototype.matches method across browsers.\n * @param {!Element} element The DOM element to test.\n * @param {string} selector The CSS selector to test element against.\n * @return {boolean} True if the selector matches.\n */\nfunction matchesSelector(element, selector) {\n if (typeof selector !== 'string')\n return false;\n if (nativeMatches)\n return nativeMatches.call(element, selector);\n var nodes = element.parentNode.querySelectorAll(selector);\n for (var i = 0, node = void 0; (node = nodes[i]); i++) {\n if (node === element)\n return true;\n }\n return false;\n}\n//# sourceMappingURL=matches.js.map","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { closest } from './closest';\nimport { matches } from './matches';\n/**\n * Delegates the handling of events for an element matching a selector to an\n * ancestor of the matching element.\n * @param {!Node} ancestor The ancestor element to add the listener to.\n * @param {string} eventType The event type to listen to.\n * @param {string} selector A CSS selector to match against child elements.\n * @param {!Function} callback A function to run any time the event happens.\n * @param {Object=} opts A configuration options object. The available options:\n * - useCapture: If true, bind to the event capture phase.\n * - deep: If true, delegate into shadow trees.\n * @return {Object} The delegate object. It contains a destroy method.\n */\nexport function delegate(ancestor, eventType, selector, callback, opts) {\n if (opts === void 0) { opts = {}; }\n // Defines the event listener.\n var listener = function (event) {\n var delegateTarget;\n // If opts.composed is true and the event originated from inside a Shadow\n // tree, check the composed path nodes.\n if (opts['composed'] && typeof event['composedPath'] === 'function') {\n var composedPath = event.composedPath();\n for (var i = 0, node = void 0; (node = composedPath[i]); i++) {\n if (node.nodeType === 1 && matches(node, selector)) {\n delegateTarget = node;\n }\n }\n }\n else {\n // Otherwise check the parents.\n delegateTarget = closest(event.target, selector, true);\n }\n if (delegateTarget) {\n callback.call(delegateTarget, event, delegateTarget);\n }\n };\n ancestor.addEventListener(eventType, listener, opts['useCapture']);\n return {\n destroy: function () {\n ancestor.removeEventListener(eventType, listener, opts['useCapture']);\n },\n };\n}\n//# sourceMappingURL=delegate.js.map","/**\n * Copyright (c) 2017, Philip Walton \n */\nimport { matches } from './matches';\nimport { parents } from './parents';\n/**\n * Gets the closest parent element that matches the passed selector.\n * @param {Element} element The element whose parents to check.\n * @param {string} selector The CSS selector to match against.\n * @param {boolean=} shouldCheckSelf True if the selector should test against\n * the passed element itself.\n * @return {Element|undefined} The matching element or undefined.\n */\nexport function closest(element, selector, shouldCheckSelf) {\n if (shouldCheckSelf === void 0) { shouldCheckSelf = false; }\n if (!(element && element.nodeType === 1 && selector))\n return;\n var parentElements = (shouldCheckSelf ? [element] : []).concat(parents(element));\n for (var i = 0, parent_1; (parent_1 = parentElements[i]); i++) {\n if (matches(parent_1, selector))\n return parent_1;\n }\n}\n//# sourceMappingURL=closest.js.map","/**\n * Copyright (c) 2017, Philip Walton \n */\n/**\n * Returns an array of a DOM element's parent elements.\n * @param {!Element} element The DOM element whose parents to get.\n * @return {!Array} An array of all parent elemets, or an empty array if no\n * parent elements are found.\n */\nexport function parents(ele) {\n var list = [];\n var element = ele;\n while (element && element.parentNode && element.parentNode.nodeType === 1) {\n element = /** @type {!Element} */ element.parentNode;\n list.push(element);\n }\n return list;\n}\n//# sourceMappingURL=parents.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { delegate } from '../vendor/dom-utils';\nimport { ConsoleLogger as Logger, browserOrNode } from '@aws-amplify/core';\nvar logger = new Logger('EventTracker');\nvar defaultOpts = {\n enable: false,\n events: ['click'],\n selectorPrefix: 'data-amplify-analytics-',\n provider: 'AWSPinpoint',\n};\nvar EventTracker = /** @class */ (function () {\n function EventTracker(tracker, opts) {\n if (!browserOrNode().isBrowser || !window.addEventListener) {\n logger.debug('not in the supported web environment');\n return;\n }\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._delegates = {};\n this._trackFunc = this._trackFunc.bind(this);\n logger.debug('initialize pageview tracker with opts', this._config);\n this.configure(this._config);\n }\n EventTracker.prototype.configure = function (opts) {\n var _this = this;\n Object.assign(this._config, opts);\n if (!this._config.enable) {\n Object.keys(this._delegates).forEach(function (key) {\n if (typeof _this._delegates[key].destroy === 'function')\n _this._delegates[key].destroy();\n });\n this._delegates = {};\n }\n else if (this._config.enable &&\n Object.keys(this._delegates).length === 0) {\n var selector_1 = '[' + this._config.selectorPrefix + 'on]';\n this._config.events.forEach(function (evt) {\n _this._delegates[evt] = delegate(document, evt, selector_1, _this._trackFunc, { composed: true, useCapture: true });\n });\n }\n return this._config;\n };\n EventTracker.prototype._trackFunc = function (event, element) {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, events, eventName, attrs, defaultAttrs, _a, attributes;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n customAttrs = {};\n events = element\n .getAttribute(this._config.selectorPrefix + 'on')\n .split(/\\s*,\\s*/);\n eventName = element.getAttribute(this._config.selectorPrefix + 'name');\n attrs = element.getAttribute(this._config.selectorPrefix + 'attrs');\n if (attrs) {\n attrs.split(/\\s*,\\s*/).forEach(function (attr) {\n var tmp = attr.trim().split(/\\s*:\\s*/);\n customAttrs[tmp[0]] = tmp[1];\n });\n }\n if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._config.attributes()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n case 3:\n defaultAttrs = _a;\n attributes = Object.assign({\n type: event.type,\n target: event.target.localName + \" with id \" + event.target.id,\n }, defaultAttrs, customAttrs);\n logger.debug('events needed to be recorded', events);\n logger.debug('attributes needed to be attached', customAttrs);\n if (events.indexOf(event.type) < 0) {\n logger.debug(\"event \" + event.type + \" is not selected to be recorded\");\n return [2 /*return*/];\n }\n this._tracker({\n name: eventName || 'event',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug(\"Failed to record the \" + event.type + \" event', \" + e);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n return EventTracker;\n}());\nexport { EventTracker };\n//# sourceMappingURL=EventTracker.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\n// the session tracker for web\nimport { ConsoleLogger as Logger, browserOrNode, } from '@aws-amplify/core';\nvar logger = new Logger('SessionTracker');\nvar defaultOpts = {\n enable: false,\n provider: 'AWSPinpoint',\n};\nvar initialEventSent = false;\nvar SessionTracker = /** @class */ (function () {\n function SessionTracker(tracker, opts) {\n this._config = Object.assign({}, defaultOpts, opts);\n this._tracker = tracker;\n this._hasEnabled = false;\n this._trackFunc = this._trackFunc.bind(this);\n this._trackBeforeUnload = this._trackBeforeUnload.bind(this);\n this.configure(this._config);\n }\n SessionTracker.prototype._envCheck = function () {\n if (!browserOrNode().isBrowser) {\n return false;\n }\n if (!document || !document.addEventListener) {\n logger.debug('not in the supported web environment');\n return false;\n }\n if (typeof document.hidden !== 'undefined') {\n this._hidden = 'hidden';\n this._visibilityChange = 'visibilitychange';\n }\n else if (typeof document['msHidden'] !== 'undefined') {\n this._hidden = 'msHidden';\n this._visibilityChange = 'msvisibilitychange';\n }\n else if (typeof document['webkitHidden'] !== 'undefined') {\n this._hidden = 'webkitHidden';\n this._visibilityChange = 'webkitvisibilitychange';\n }\n else {\n logger.debug('not in the supported web environment');\n return false;\n }\n return true;\n };\n SessionTracker.prototype._trackFunc = function () {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, _a, attributes;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._config.attributes()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n case 3:\n customAttrs = _a;\n attributes = Object.assign({}, customAttrs);\n if (document.visibilityState === this._hidden) {\n this._tracker({\n name: '_session.stop',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug('record session stop event failed.', e);\n });\n }\n else {\n this._tracker({\n name: '_session.start',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug('record session start event failed.', e);\n });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n SessionTracker.prototype._trackBeforeUnload = function (event) {\n // before unload callback cannot be async => https://github.com/aws-amplify/amplify-js/issues/2088\n var _this = this;\n var customAttrs = typeof this._config.attributes === 'function'\n ? Promise.resolve(this._config.attributes())\n : Promise.resolve(this._config.attributes);\n customAttrs.then(function (custom) {\n var attributes = Object.assign({}, custom);\n _this._tracker({\n name: '_session.stop',\n attributes: attributes,\n immediate: true,\n }, _this._config.provider).catch(function (e) {\n logger.debug('record session stop event failed.', e);\n });\n });\n };\n // to keep configure a synchronized function\n SessionTracker.prototype._sendInitialEvent = function () {\n return __awaiter(this, void 0, void 0, function () {\n var customAttrs, _a, attributes;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (initialEventSent) {\n logger.debug('the start session has been sent when the page is loaded');\n return [2 /*return*/];\n }\n else {\n initialEventSent = true;\n }\n if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._config.attributes()];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = this._config.attributes;\n _b.label = 3;\n case 3:\n customAttrs = _a;\n attributes = Object.assign({}, customAttrs);\n this._tracker({\n name: '_session.start',\n attributes: attributes,\n }, this._config.provider).catch(function (e) {\n logger.debug('record session start event failed.', e);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n SessionTracker.prototype.configure = function (opts) {\n if (!this._envCheck()) {\n return this._config;\n }\n Object.assign(this._config, opts);\n if (this._config.enable && !this._hasEnabled) {\n // send a start session as soon as it's enabled\n this._sendInitialEvent();\n // listen on events\n document.addEventListener(this._visibilityChange, this._trackFunc, false);\n window.addEventListener('beforeunload', this._trackBeforeUnload, false);\n this._hasEnabled = true;\n }\n else if (!this._config.enable && this._hasEnabled) {\n document.removeEventListener(this._visibilityChange, this._trackFunc, false);\n window.removeEventListener('beforeunload', this._trackBeforeUnload, false);\n this._hasEnabled = false;\n }\n return this._config;\n };\n return SessionTracker;\n}());\nexport { SessionTracker };\n//# sourceMappingURL=SessionTracker.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator } from \"tslib\";\nimport { Amplify, ConsoleLogger as Logger, Hub, parseAWSExports, } from '@aws-amplify/core';\nimport { AWSPinpointProvider } from './Providers/AWSPinpointProvider';\nimport { PageViewTracker, EventTracker, SessionTracker } from './trackers';\nvar logger = new Logger('AnalyticsClass');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAnalyticsEvent = function (event, data, message) {\n Hub.dispatch('analytics', { event: event, data: data, message: message }, 'Analytics', AMPLIFY_SYMBOL);\n};\nvar trackers = {\n pageView: PageViewTracker,\n event: EventTracker,\n session: SessionTracker,\n};\nvar _instance = null;\n/**\n * Provide mobile analytics client functions\n */\nvar AnalyticsClass = /** @class */ (function () {\n /**\n * Initialize Analtyics\n * @param config - Configuration of the Analytics\n */\n function AnalyticsClass() {\n this._config = {};\n this._pluggables = [];\n this._disabled = false;\n this._trackers = {};\n _instance = this;\n this.record = this.record.bind(this);\n Hub.listen('auth', listener);\n Hub.listen('storage', listener);\n Hub.listen('analytics', listener);\n Hub.listen('core', listener);\n }\n AnalyticsClass.prototype.getModuleName = function () {\n return 'Analytics';\n };\n /**\n * configure Analytics\n * @param {Object} config - Configuration of the Analytics\n */\n AnalyticsClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n logger.debug('configure Analytics', config);\n var amplifyConfig = parseAWSExports(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Analytics, config);\n if (this._config['disabled']) {\n this._disabled = true;\n }\n // turn on the autoSessionRecord if not specified\n if (this._config['autoSessionRecord'] === undefined) {\n this._config['autoSessionRecord'] = true;\n }\n this._pluggables.forEach(function (pluggable) {\n // for backward compatibility\n var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' &&\n !_this._config['AWSPinpoint']\n ? _this._config\n : _this._config[pluggable.getProviderName()];\n pluggable.configure(__assign({ disabled: _this._config['disabled'], autoSessionRecord: _this._config['autoSessionRecord'] }, providerConfig));\n });\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSPinpointProvider());\n }\n dispatchAnalyticsEvent('configured', null, \"The Analytics category has been configured successfully\");\n logger.debug('current configuration', this._config);\n return this._config;\n };\n /**\n * add plugin into Analytics category\n * @param pluggable - an instance of the plugin\n */\n AnalyticsClass.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Analytics') {\n this._pluggables.push(pluggable);\n // for backward compatibility\n var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' &&\n !this._config['AWSPinpoint']\n ? this._config\n : this._config[pluggable.getProviderName()];\n var config = __assign({ disabled: this._config['disabled'] }, providerConfig);\n pluggable.configure(config);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the provider to be removed\n */\n AnalyticsClass.prototype.getPluggable = function (providerName) {\n for (var i = 0; i < this._pluggables.length; i += 1) {\n var pluggable = this._pluggables[i];\n if (pluggable.getProviderName() === providerName) {\n return pluggable;\n }\n }\n logger.debug('No plugin found with providerName', providerName);\n return null;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the provider to be removed\n */\n AnalyticsClass.prototype.removePluggable = function (providerName) {\n var idx = 0;\n while (idx < this._pluggables.length) {\n if (this._pluggables[idx].getProviderName() === providerName) {\n break;\n }\n idx += 1;\n }\n if (idx === this._pluggables.length) {\n logger.debug('No plugin found with providerName', providerName);\n return;\n }\n else {\n this._pluggables.splice(idx, idx + 1);\n return;\n }\n };\n /**\n * stop sending events\n */\n AnalyticsClass.prototype.disable = function () {\n this._disabled = true;\n };\n /**\n * start sending events\n */\n AnalyticsClass.prototype.enable = function () {\n this._disabled = false;\n };\n /**\n * Record Session start\n * @param [provider] - name of the provider.\n * @return - A promise which resolves if buffer doesn't overflow\n */\n AnalyticsClass.prototype.startSession = function (provider) {\n return __awaiter(this, void 0, void 0, function () {\n var event, params;\n return __generator(this, function (_a) {\n event = { name: '_session.start' };\n params = { event: event, provider: provider };\n dispatchAnalyticsEvent('record', event, 'Recording Analytics session start event');\n return [2 /*return*/, this._sendEvent(params)];\n });\n });\n };\n /**\n * Record Session stop\n * @param [provider] - name of the provider.\n * @return - A promise which resolves if buffer doesn't overflow\n */\n AnalyticsClass.prototype.stopSession = function (provider) {\n return __awaiter(this, void 0, void 0, function () {\n var event, params;\n return __generator(this, function (_a) {\n event = { name: '_session.stop' };\n params = { event: event, provider: provider };\n dispatchAnalyticsEvent('record', event, 'Recording Analytics session stop event');\n return [2 /*return*/, this._sendEvent(params)];\n });\n });\n };\n /**\n * Record one analytic event and send it to Pinpoint\n * @param event - An object with the name of the event, attributes of the event and event metrics.\n * @param [provider] - name of the provider.\n */\n AnalyticsClass.prototype.record = function (event, provider) {\n return __awaiter(this, void 0, void 0, function () {\n var params;\n return __generator(this, function (_a) {\n params = { event: event, provider: provider };\n dispatchAnalyticsEvent('record', params.event, 'Recording Analytics event');\n return [2 /*return*/, this._sendEvent(params)];\n });\n });\n };\n AnalyticsClass.prototype.updateEndpoint = function (attrs, provider) {\n return __awaiter(this, void 0, void 0, function () {\n var event;\n return __generator(this, function (_a) {\n event = __assign(__assign({}, attrs), { name: '_update_endpoint' });\n return [2 /*return*/, this.record(event, provider)];\n });\n });\n };\n AnalyticsClass.prototype._sendEvent = function (params) {\n var _this = this;\n if (this._disabled) {\n logger.debug('Analytics has been disabled');\n return Promise.resolve();\n }\n var provider = params.provider ? params.provider : 'AWSPinpoint';\n return new Promise(function (resolve, reject) {\n _this._pluggables.forEach(function (pluggable) {\n if (pluggable.getProviderName() === provider) {\n pluggable.record(params, { resolve: resolve, reject: reject });\n }\n });\n });\n };\n AnalyticsClass.prototype.autoTrack = function (trackerType, opts) {\n if (!trackers[trackerType]) {\n logger.debug('invalid tracker type');\n return;\n }\n // to sync up two different configuration ways of auto session tracking\n if (trackerType === 'session') {\n this._config['autoSessionRecord'] = opts['enable'];\n }\n var tracker = this._trackers[trackerType];\n if (!tracker) {\n this._trackers[trackerType] = new trackers[trackerType](this.record, opts);\n }\n else {\n tracker.configure(opts);\n }\n };\n return AnalyticsClass;\n}());\nexport { AnalyticsClass };\nvar endpointUpdated = false;\nvar authConfigured = false;\nvar analyticsConfigured = false;\nvar credentialsConfigured = false;\nvar listener = function (capsule) {\n var channel = capsule.channel, payload = capsule.payload;\n logger.debug('on hub capsule ' + channel, payload);\n switch (channel) {\n case 'auth':\n authEvent(payload);\n break;\n case 'storage':\n storageEvent(payload);\n break;\n case 'analytics':\n analyticsEvent(payload);\n break;\n case 'core':\n coreEvent(payload);\n break;\n default:\n break;\n }\n};\nvar storageEvent = function (payload) {\n var _a = payload.data, attrs = _a.attrs, metrics = _a.metrics;\n if (!attrs)\n return;\n if (analyticsConfigured) {\n _instance\n .record({\n name: 'Storage',\n attributes: attrs,\n metrics: metrics,\n })\n .catch(function (e) {\n logger.debug('Failed to send the storage event automatically', e);\n });\n }\n};\nvar authEvent = function (payload) {\n var event = payload.event;\n if (!event) {\n return;\n }\n var recordAuthEvent = function (eventName) { return __awaiter(void 0, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(authConfigured && analyticsConfigured)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, _instance.record({ name: \"_userauth.\" + eventName })];\n case 2: return [2 /*return*/, _a.sent()];\n case 3:\n err_1 = _a.sent();\n logger.debug(\"Failed to send the \" + eventName + \" event automatically\", err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n switch (event) {\n case 'signIn':\n return recordAuthEvent('sign_in');\n case 'signUp':\n return recordAuthEvent('sign_up');\n case 'signOut':\n return recordAuthEvent('sign_out');\n case 'signIn_failure':\n return recordAuthEvent('auth_fail');\n case 'configured':\n authConfigured = true;\n if (analyticsConfigured) {\n sendEvents();\n }\n break;\n }\n};\nvar analyticsEvent = function (payload) {\n var event = payload.event;\n if (!event)\n return;\n switch (event) {\n case 'pinpointProvider_configured':\n analyticsConfigured = true;\n if (authConfigured || credentialsConfigured) {\n sendEvents();\n }\n break;\n }\n};\nvar coreEvent = function (payload) {\n var event = payload.event;\n if (!event)\n return;\n switch (event) {\n case 'credentials_configured':\n credentialsConfigured = true;\n if (analyticsConfigured) {\n sendEvents();\n }\n break;\n }\n};\nvar sendEvents = function () {\n var config = _instance.configure();\n if (!endpointUpdated && config['autoSessionRecord']) {\n _instance.updateEndpoint({ immediate: true }).catch(function (e) {\n logger.debug('Failed to update the endpoint', e);\n });\n endpointUpdated = true;\n }\n _instance.autoTrack('session', {\n enable: config['autoSessionRecord'],\n });\n};\nexport var Analytics = new AnalyticsClass();\nAmplify.register(Analytics);\n//# sourceMappingURL=Analytics.js.map","import { __assign } from \"tslib\";\nexport var AddTagsToStreamInput;\n(function (AddTagsToStreamInput) {\n AddTagsToStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AddTagsToStreamInput || (AddTagsToStreamInput = {}));\nexport var InvalidArgumentException;\n(function (InvalidArgumentException) {\n InvalidArgumentException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidArgumentException || (InvalidArgumentException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var ResourceInUseException;\n(function (ResourceInUseException) {\n ResourceInUseException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceInUseException || (ResourceInUseException = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var HashKeyRange;\n(function (HashKeyRange) {\n HashKeyRange.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HashKeyRange || (HashKeyRange = {}));\nexport var ChildShard;\n(function (ChildShard) {\n ChildShard.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ChildShard || (ChildShard = {}));\nexport var ConsumerStatus;\n(function (ConsumerStatus) {\n ConsumerStatus[\"ACTIVE\"] = \"ACTIVE\";\n ConsumerStatus[\"CREATING\"] = \"CREATING\";\n ConsumerStatus[\"DELETING\"] = \"DELETING\";\n})(ConsumerStatus || (ConsumerStatus = {}));\nexport var Consumer;\n(function (Consumer) {\n Consumer.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Consumer || (Consumer = {}));\nexport var ConsumerDescription;\n(function (ConsumerDescription) {\n ConsumerDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConsumerDescription || (ConsumerDescription = {}));\nexport var CreateStreamInput;\n(function (CreateStreamInput) {\n CreateStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateStreamInput || (CreateStreamInput = {}));\nexport var DecreaseStreamRetentionPeriodInput;\n(function (DecreaseStreamRetentionPeriodInput) {\n DecreaseStreamRetentionPeriodInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DecreaseStreamRetentionPeriodInput || (DecreaseStreamRetentionPeriodInput = {}));\nexport var DeleteStreamInput;\n(function (DeleteStreamInput) {\n DeleteStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteStreamInput || (DeleteStreamInput = {}));\nexport var DeregisterStreamConsumerInput;\n(function (DeregisterStreamConsumerInput) {\n DeregisterStreamConsumerInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeregisterStreamConsumerInput || (DeregisterStreamConsumerInput = {}));\nexport var DescribeLimitsInput;\n(function (DescribeLimitsInput) {\n DescribeLimitsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLimitsInput || (DescribeLimitsInput = {}));\nexport var DescribeLimitsOutput;\n(function (DescribeLimitsOutput) {\n DescribeLimitsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLimitsOutput || (DescribeLimitsOutput = {}));\nexport var DescribeStreamInput;\n(function (DescribeStreamInput) {\n DescribeStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamInput || (DescribeStreamInput = {}));\nexport var EncryptionType;\n(function (EncryptionType) {\n EncryptionType[\"KMS\"] = \"KMS\";\n EncryptionType[\"NONE\"] = \"NONE\";\n})(EncryptionType || (EncryptionType = {}));\nexport var MetricsName;\n(function (MetricsName) {\n MetricsName[\"ALL\"] = \"ALL\";\n MetricsName[\"INCOMING_BYTES\"] = \"IncomingBytes\";\n MetricsName[\"INCOMING_RECORDS\"] = \"IncomingRecords\";\n MetricsName[\"ITERATOR_AGE_MILLISECONDS\"] = \"IteratorAgeMilliseconds\";\n MetricsName[\"OUTGOING_BYTES\"] = \"OutgoingBytes\";\n MetricsName[\"OUTGOING_RECORDS\"] = \"OutgoingRecords\";\n MetricsName[\"READ_PROVISIONED_THROUGHPUT_EXCEEDED\"] = \"ReadProvisionedThroughputExceeded\";\n MetricsName[\"WRITE_PROVISIONED_THROUGHPUT_EXCEEDED\"] = \"WriteProvisionedThroughputExceeded\";\n})(MetricsName || (MetricsName = {}));\nexport var EnhancedMetrics;\n(function (EnhancedMetrics) {\n EnhancedMetrics.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EnhancedMetrics || (EnhancedMetrics = {}));\nexport var SequenceNumberRange;\n(function (SequenceNumberRange) {\n SequenceNumberRange.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SequenceNumberRange || (SequenceNumberRange = {}));\nexport var Shard;\n(function (Shard) {\n Shard.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Shard || (Shard = {}));\nexport var StreamStatus;\n(function (StreamStatus) {\n StreamStatus[\"ACTIVE\"] = \"ACTIVE\";\n StreamStatus[\"CREATING\"] = \"CREATING\";\n StreamStatus[\"DELETING\"] = \"DELETING\";\n StreamStatus[\"UPDATING\"] = \"UPDATING\";\n})(StreamStatus || (StreamStatus = {}));\nexport var StreamDescription;\n(function (StreamDescription) {\n StreamDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StreamDescription || (StreamDescription = {}));\nexport var DescribeStreamOutput;\n(function (DescribeStreamOutput) {\n DescribeStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamOutput || (DescribeStreamOutput = {}));\nexport var DescribeStreamConsumerInput;\n(function (DescribeStreamConsumerInput) {\n DescribeStreamConsumerInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamConsumerInput || (DescribeStreamConsumerInput = {}));\nexport var DescribeStreamConsumerOutput;\n(function (DescribeStreamConsumerOutput) {\n DescribeStreamConsumerOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamConsumerOutput || (DescribeStreamConsumerOutput = {}));\nexport var DescribeStreamSummaryInput;\n(function (DescribeStreamSummaryInput) {\n DescribeStreamSummaryInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamSummaryInput || (DescribeStreamSummaryInput = {}));\nexport var StreamDescriptionSummary;\n(function (StreamDescriptionSummary) {\n StreamDescriptionSummary.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StreamDescriptionSummary || (StreamDescriptionSummary = {}));\nexport var DescribeStreamSummaryOutput;\n(function (DescribeStreamSummaryOutput) {\n DescribeStreamSummaryOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeStreamSummaryOutput || (DescribeStreamSummaryOutput = {}));\nexport var DisableEnhancedMonitoringInput;\n(function (DisableEnhancedMonitoringInput) {\n DisableEnhancedMonitoringInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DisableEnhancedMonitoringInput || (DisableEnhancedMonitoringInput = {}));\nexport var EnhancedMonitoringOutput;\n(function (EnhancedMonitoringOutput) {\n EnhancedMonitoringOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EnhancedMonitoringOutput || (EnhancedMonitoringOutput = {}));\nexport var EnableEnhancedMonitoringInput;\n(function (EnableEnhancedMonitoringInput) {\n EnableEnhancedMonitoringInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EnableEnhancedMonitoringInput || (EnableEnhancedMonitoringInput = {}));\nexport var ExpiredIteratorException;\n(function (ExpiredIteratorException) {\n ExpiredIteratorException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExpiredIteratorException || (ExpiredIteratorException = {}));\nexport var ExpiredNextTokenException;\n(function (ExpiredNextTokenException) {\n ExpiredNextTokenException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExpiredNextTokenException || (ExpiredNextTokenException = {}));\nexport var GetRecordsInput;\n(function (GetRecordsInput) {\n GetRecordsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetRecordsInput || (GetRecordsInput = {}));\nexport var _Record;\n(function (_Record) {\n _Record.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Record || (_Record = {}));\nexport var GetRecordsOutput;\n(function (GetRecordsOutput) {\n GetRecordsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetRecordsOutput || (GetRecordsOutput = {}));\nexport var KMSAccessDeniedException;\n(function (KMSAccessDeniedException) {\n KMSAccessDeniedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSAccessDeniedException || (KMSAccessDeniedException = {}));\nexport var KMSDisabledException;\n(function (KMSDisabledException) {\n KMSDisabledException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSDisabledException || (KMSDisabledException = {}));\nexport var KMSInvalidStateException;\n(function (KMSInvalidStateException) {\n KMSInvalidStateException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSInvalidStateException || (KMSInvalidStateException = {}));\nexport var KMSNotFoundException;\n(function (KMSNotFoundException) {\n KMSNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSNotFoundException || (KMSNotFoundException = {}));\nexport var KMSOptInRequired;\n(function (KMSOptInRequired) {\n KMSOptInRequired.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSOptInRequired || (KMSOptInRequired = {}));\nexport var KMSThrottlingException;\n(function (KMSThrottlingException) {\n KMSThrottlingException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSThrottlingException || (KMSThrottlingException = {}));\nexport var ProvisionedThroughputExceededException;\n(function (ProvisionedThroughputExceededException) {\n ProvisionedThroughputExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProvisionedThroughputExceededException || (ProvisionedThroughputExceededException = {}));\nexport var ShardIteratorType;\n(function (ShardIteratorType) {\n ShardIteratorType[\"AFTER_SEQUENCE_NUMBER\"] = \"AFTER_SEQUENCE_NUMBER\";\n ShardIteratorType[\"AT_SEQUENCE_NUMBER\"] = \"AT_SEQUENCE_NUMBER\";\n ShardIteratorType[\"AT_TIMESTAMP\"] = \"AT_TIMESTAMP\";\n ShardIteratorType[\"LATEST\"] = \"LATEST\";\n ShardIteratorType[\"TRIM_HORIZON\"] = \"TRIM_HORIZON\";\n})(ShardIteratorType || (ShardIteratorType = {}));\nexport var GetShardIteratorInput;\n(function (GetShardIteratorInput) {\n GetShardIteratorInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetShardIteratorInput || (GetShardIteratorInput = {}));\nexport var GetShardIteratorOutput;\n(function (GetShardIteratorOutput) {\n GetShardIteratorOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetShardIteratorOutput || (GetShardIteratorOutput = {}));\nexport var IncreaseStreamRetentionPeriodInput;\n(function (IncreaseStreamRetentionPeriodInput) {\n IncreaseStreamRetentionPeriodInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IncreaseStreamRetentionPeriodInput || (IncreaseStreamRetentionPeriodInput = {}));\nexport var InternalFailureException;\n(function (InternalFailureException) {\n InternalFailureException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InternalFailureException || (InternalFailureException = {}));\nexport var ShardFilterType;\n(function (ShardFilterType) {\n ShardFilterType[\"AFTER_SHARD_ID\"] = \"AFTER_SHARD_ID\";\n ShardFilterType[\"AT_LATEST\"] = \"AT_LATEST\";\n ShardFilterType[\"AT_TIMESTAMP\"] = \"AT_TIMESTAMP\";\n ShardFilterType[\"AT_TRIM_HORIZON\"] = \"AT_TRIM_HORIZON\";\n ShardFilterType[\"FROM_TIMESTAMP\"] = \"FROM_TIMESTAMP\";\n ShardFilterType[\"FROM_TRIM_HORIZON\"] = \"FROM_TRIM_HORIZON\";\n})(ShardFilterType || (ShardFilterType = {}));\nexport var ShardFilter;\n(function (ShardFilter) {\n ShardFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ShardFilter || (ShardFilter = {}));\nexport var ListShardsInput;\n(function (ListShardsInput) {\n ListShardsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListShardsInput || (ListShardsInput = {}));\nexport var ListShardsOutput;\n(function (ListShardsOutput) {\n ListShardsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListShardsOutput || (ListShardsOutput = {}));\nexport var ListStreamConsumersInput;\n(function (ListStreamConsumersInput) {\n ListStreamConsumersInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListStreamConsumersInput || (ListStreamConsumersInput = {}));\nexport var ListStreamConsumersOutput;\n(function (ListStreamConsumersOutput) {\n ListStreamConsumersOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListStreamConsumersOutput || (ListStreamConsumersOutput = {}));\nexport var ListStreamsInput;\n(function (ListStreamsInput) {\n ListStreamsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListStreamsInput || (ListStreamsInput = {}));\nexport var ListStreamsOutput;\n(function (ListStreamsOutput) {\n ListStreamsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListStreamsOutput || (ListStreamsOutput = {}));\nexport var ListTagsForStreamInput;\n(function (ListTagsForStreamInput) {\n ListTagsForStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForStreamInput || (ListTagsForStreamInput = {}));\nexport var Tag;\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tag || (Tag = {}));\nexport var ListTagsForStreamOutput;\n(function (ListTagsForStreamOutput) {\n ListTagsForStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForStreamOutput || (ListTagsForStreamOutput = {}));\nexport var MergeShardsInput;\n(function (MergeShardsInput) {\n MergeShardsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeShardsInput || (MergeShardsInput = {}));\nexport var PutRecordInput;\n(function (PutRecordInput) {\n PutRecordInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordInput || (PutRecordInput = {}));\nexport var PutRecordOutput;\n(function (PutRecordOutput) {\n PutRecordOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordOutput || (PutRecordOutput = {}));\nexport var PutRecordsRequestEntry;\n(function (PutRecordsRequestEntry) {\n PutRecordsRequestEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordsRequestEntry || (PutRecordsRequestEntry = {}));\nexport var PutRecordsInput;\n(function (PutRecordsInput) {\n PutRecordsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordsInput || (PutRecordsInput = {}));\nexport var PutRecordsResultEntry;\n(function (PutRecordsResultEntry) {\n PutRecordsResultEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordsResultEntry || (PutRecordsResultEntry = {}));\nexport var PutRecordsOutput;\n(function (PutRecordsOutput) {\n PutRecordsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordsOutput || (PutRecordsOutput = {}));\nexport var RegisterStreamConsumerInput;\n(function (RegisterStreamConsumerInput) {\n RegisterStreamConsumerInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RegisterStreamConsumerInput || (RegisterStreamConsumerInput = {}));\nexport var RegisterStreamConsumerOutput;\n(function (RegisterStreamConsumerOutput) {\n RegisterStreamConsumerOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RegisterStreamConsumerOutput || (RegisterStreamConsumerOutput = {}));\nexport var RemoveTagsFromStreamInput;\n(function (RemoveTagsFromStreamInput) {\n RemoveTagsFromStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RemoveTagsFromStreamInput || (RemoveTagsFromStreamInput = {}));\nexport var SplitShardInput;\n(function (SplitShardInput) {\n SplitShardInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SplitShardInput || (SplitShardInput = {}));\nexport var StartStreamEncryptionInput;\n(function (StartStreamEncryptionInput) {\n StartStreamEncryptionInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartStreamEncryptionInput || (StartStreamEncryptionInput = {}));\nexport var StopStreamEncryptionInput;\n(function (StopStreamEncryptionInput) {\n StopStreamEncryptionInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StopStreamEncryptionInput || (StopStreamEncryptionInput = {}));\nexport var StartingPosition;\n(function (StartingPosition) {\n StartingPosition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartingPosition || (StartingPosition = {}));\nexport var SubscribeToShardInput;\n(function (SubscribeToShardInput) {\n SubscribeToShardInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SubscribeToShardInput || (SubscribeToShardInput = {}));\nexport var SubscribeToShardEvent;\n(function (SubscribeToShardEvent) {\n SubscribeToShardEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SubscribeToShardEvent || (SubscribeToShardEvent = {}));\nexport var SubscribeToShardEventStream;\n(function (SubscribeToShardEventStream) {\n SubscribeToShardEventStream.visit = function (value, visitor) {\n if (value.SubscribeToShardEvent !== undefined)\n return visitor.SubscribeToShardEvent(value.SubscribeToShardEvent);\n if (value.ResourceNotFoundException !== undefined)\n return visitor.ResourceNotFoundException(value.ResourceNotFoundException);\n if (value.ResourceInUseException !== undefined)\n return visitor.ResourceInUseException(value.ResourceInUseException);\n if (value.KMSDisabledException !== undefined)\n return visitor.KMSDisabledException(value.KMSDisabledException);\n if (value.KMSInvalidStateException !== undefined)\n return visitor.KMSInvalidStateException(value.KMSInvalidStateException);\n if (value.KMSAccessDeniedException !== undefined)\n return visitor.KMSAccessDeniedException(value.KMSAccessDeniedException);\n if (value.KMSNotFoundException !== undefined)\n return visitor.KMSNotFoundException(value.KMSNotFoundException);\n if (value.KMSOptInRequired !== undefined)\n return visitor.KMSOptInRequired(value.KMSOptInRequired);\n if (value.KMSThrottlingException !== undefined)\n return visitor.KMSThrottlingException(value.KMSThrottlingException);\n if (value.InternalFailureException !== undefined)\n return visitor.InternalFailureException(value.InternalFailureException);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n SubscribeToShardEventStream.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.SubscribeToShardEvent !== undefined)\n return { SubscribeToShardEvent: SubscribeToShardEvent.filterSensitiveLog(obj.SubscribeToShardEvent) };\n if (obj.ResourceNotFoundException !== undefined)\n return { ResourceNotFoundException: ResourceNotFoundException.filterSensitiveLog(obj.ResourceNotFoundException) };\n if (obj.ResourceInUseException !== undefined)\n return { ResourceInUseException: ResourceInUseException.filterSensitiveLog(obj.ResourceInUseException) };\n if (obj.KMSDisabledException !== undefined)\n return { KMSDisabledException: KMSDisabledException.filterSensitiveLog(obj.KMSDisabledException) };\n if (obj.KMSInvalidStateException !== undefined)\n return { KMSInvalidStateException: KMSInvalidStateException.filterSensitiveLog(obj.KMSInvalidStateException) };\n if (obj.KMSAccessDeniedException !== undefined)\n return { KMSAccessDeniedException: KMSAccessDeniedException.filterSensitiveLog(obj.KMSAccessDeniedException) };\n if (obj.KMSNotFoundException !== undefined)\n return { KMSNotFoundException: KMSNotFoundException.filterSensitiveLog(obj.KMSNotFoundException) };\n if (obj.KMSOptInRequired !== undefined)\n return { KMSOptInRequired: KMSOptInRequired.filterSensitiveLog(obj.KMSOptInRequired) };\n if (obj.KMSThrottlingException !== undefined)\n return { KMSThrottlingException: KMSThrottlingException.filterSensitiveLog(obj.KMSThrottlingException) };\n if (obj.InternalFailureException !== undefined)\n return { InternalFailureException: InternalFailureException.filterSensitiveLog(obj.InternalFailureException) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(SubscribeToShardEventStream || (SubscribeToShardEventStream = {}));\nexport var SubscribeToShardOutput;\n(function (SubscribeToShardOutput) {\n SubscribeToShardOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.EventStream && { EventStream: \"STREAMING_CONTENT\" }))); };\n})(SubscribeToShardOutput || (SubscribeToShardOutput = {}));\nexport var ScalingType;\n(function (ScalingType) {\n ScalingType[\"UNIFORM_SCALING\"] = \"UNIFORM_SCALING\";\n})(ScalingType || (ScalingType = {}));\nexport var UpdateShardCountInput;\n(function (UpdateShardCountInput) {\n UpdateShardCountInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UpdateShardCountInput || (UpdateShardCountInput = {}));\nexport var UpdateShardCountOutput;\n(function (UpdateShardCountOutput) {\n UpdateShardCountOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UpdateShardCountOutput || (UpdateShardCountOutput = {}));\n//# sourceMappingURL=models_0.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n response = (_a.sent()).response;\n return [4 /*yield*/, deserializer(response, options)];\n case 2:\n parsed = _a.sent();\n return [2 /*return*/, {\n response: response,\n output: parsed,\n }];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFTQSxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxVQUNwQyxPQUFxQixFQUNyQixZQUEwRCxJQUNqQixPQUFBLFVBQ3pDLElBQXVDLEVBQ3ZDLE9BQWdDLElBQ00sT0FBQSxVQUN0QyxJQUF3Qzs7OztvQkFFbkIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOztnQkFBN0IsUUFBUSxHQUFLLENBQUEsU0FBZ0IsQ0FBQSxTQUFyQjtnQkFDRCxxQkFBTSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBOUMsTUFBTSxHQUFHLFNBQXFDO2dCQUNwRCxzQkFBTzt3QkFDTCxRQUFRLFVBQUE7d0JBQ1IsTUFBTSxFQUFFLE1BQWdCO3FCQUN6QixFQUFDOzs7S0FDSCxFQVR1QyxDQVN2QyxFQVowQyxDQVkxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIERlc2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgRGVzZXJpYWxpemVNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUmVzcG9uc2VEZXNlcmlhbGl6ZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgPSBhbnk+KFxuICBvcHRpb25zOiBSdW50aW1lVXRpbHMsXG4gIGRlc2VyaWFsaXplcjogUmVzcG9uc2VEZXNlcmlhbGl6ZXI8YW55LCBhbnksIFJ1bnRpbWVVdGlscz5cbik6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PiA9PiAoXG4gIG5leHQ6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PiBhc3luYyAoXG4gIGFyZ3M6IERlc2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbik6IFByb21pc2U8RGVzZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgcGFyc2VkID0gYXdhaXQgZGVzZXJpYWxpemVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZSxcbiAgICBvdXRwdXQ6IHBhcnNlZCBhcyBPdXRwdXQsXG4gIH07XG59O1xuIl19","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGVQbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyZGVQbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQThCO0lBQ3JFLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3RCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUE0QjtJQUNqRSxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztJQUNwQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUs1QixNQUFvQixFQUNwQixVQUFnRCxFQUNoRCxZQUFpRTtJQUVqRSxPQUFPO1FBQ0wsWUFBWSxFQUFFLFVBQUMsWUFBb0Q7WUFDakUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUM3RixZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEVuZHBvaW50QmVhcmVyLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgTWlkZGxld2FyZVN0YWNrLFxuICBQbHVnZ2FibGUsXG4gIFJlcXVlc3RTZXJpYWxpemVyLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiZGVzZXJpYWxpemVcIixcbiAgdGFnczogW1wiREVTRVJJQUxJWkVSXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJzZXJpYWxpemVcIixcbiAgdGFnczogW1wiU0VSSUFMSVpFUlwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VyZGVQbHVnaW48XG4gIElucHV0VHlwZSBleHRlbmRzIG9iamVjdCxcbiAgU2VyRGVDb250ZXh0IGV4dGVuZHMgRW5kcG9pbnRCZWFyZXIsXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgY29uZmlnOiBTZXJEZUNvbnRleHQsXG4gIHNlcmlhbGl6ZXI6IFJlcXVlc3RTZXJpYWxpemVyPGFueSwgU2VyRGVDb250ZXh0PixcbiAgZGVzZXJpYWxpemVyOiBSZXNwb25zZURlc2VyaWFsaXplcjxPdXRwdXRUeXBlLCBhbnksIFNlckRlQ29udGV4dD5cbik6IFBsdWdnYWJsZTxJbnB1dFR5cGUsIE91dHB1dFR5cGU+IHtcbiAgcmV0dXJuIHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KSA9PiB7XG4gICAgICBjb21tYW5kU3RhY2suYWRkKGRlc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBkZXNlcmlhbGl6ZXIpLCBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uKTtcbiAgICAgIGNvbW1hbmRTdGFjay5hZGQoc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBzZXJpYWxpemVyKSwgc2VyaWFsaXplck1pZGRsZXdhcmVPcHRpb24pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializer(args.input, options)];\n case 1:\n request = _a.sent();\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQXFCLEVBQ3JCLFVBQWdELElBQ1QsT0FBQSxVQUN2QyxJQUFxQyxFQUNyQyxPQUFnQyxJQUNJLE9BQUEsVUFDcEMsSUFBc0M7Ozs7b0JBRXRCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBL0MsT0FBTyxHQUFHLFNBQXFDO2dCQUNyRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQVJxQyxDQVFyQyxFQVh3QyxDQVd4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW5kcG9pbnRCZWFyZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBSZXF1ZXN0U2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlcixcbiAgU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgU2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgZXh0ZW5kcyBFbmRwb2ludEJlYXJlcj4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgc2VyaWFsaXplcjogUmVxdWVzdFNlcmlhbGl6ZXI8YW55LCBSdW50aW1lVXRpbHM+XG4pOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChcbiAgbmV4dDogU2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IFNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBTZXJpYWxpemVIYW5kbGVyQXJndW1lbnRzPElucHV0PlxuKTogUHJvbWlzZTxTZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHNlcmlhbGl6ZXIoYXJncy5pbnB1dCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXh0KHtcbiAgICAuLi5hcmdzLFxuICAgIHJlcXVlc3QsXG4gIH0pO1xufTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n return expandedMiddlewareList;\n };\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n var getMiddlewareList = function () {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(entry.toMiddleware + \" is not found when adding \" + (entry.name || \"anonymous\") + \" middleware \" + entry.relation + \" \" + entry.toMiddleware);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n // TODO: Replace it with Array.flat();\n wholeList.push.apply(wholeList, __spread(expendedMiddlewareList));\n return wholeList;\n }, []);\n return mainChain.map(function (entry) { return entry.middleware; });\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware with \" + toOverride.priority + \" priority in \" + toOverride.step + \" step cannot be \" +\n (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" +\n (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRztJQUM1QixJQUFJLGVBQWUsR0FBNkMsRUFBRSxDQUFDO0lBQ25FLElBQUksZUFBZSxHQUE2QyxFQUFFLENBQUM7SUFDbkUsSUFBTSxjQUFjLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFOUMsSUFBTSxJQUFJLEdBQUcsVUFBbUQsT0FBWTtRQUMxRSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQ1YsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNILE9BQUEsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRGpGLENBQ2lGLENBQ3BGO0lBSkQsQ0FJQyxDQUFDO0lBRUosSUFBTSxZQUFZLEdBQUcsVUFBQyxRQUFnQjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELGVBQWUsR0FBRyxlQUFl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QUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBIYW5kbGVyLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIE1pZGRsZXdhcmVTdGFjayxcbiAgTWlkZGxld2FyZVR5cGUsXG4gIFBsdWdnYWJsZSxcbiAgUHJpb3JpdHksXG4gIFJlbGF0aXZlTG9jYXRpb24sXG4gIFN0ZXAsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeSwgTWlkZGxld2FyZUVudHJ5LCBOb3JtYWxpemVkLCBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTdGFjayA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PigpOiBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPT4ge1xuICBsZXQgYWJzb2x1dGVFbnRyaWVzOiBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gIGxldCByZWxhdGl2ZUVudHJpZXM6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgY29uc3QgZW50cmllc05hbWVTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0IHNvcnQgPSA8VCBleHRlbmRzIEFic29sdXRlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+PihlbnRyaWVzOiBUW10pOiBUW10gPT5cbiAgICBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG5cbiAgY29uc3QgcmVtb3ZlQnlOYW1lID0gKHRvUmVtb3ZlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBsZXQgaXNSZW1vdmVkID0gZmFsc2U7XG4gICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKGVudHJ5Lm5hbWUgJiYgZW50cnkubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgZW50cmllc05hbWVTZXQuZGVsZXRlKHRvUmVtb3ZlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZUJ5UmVmZXJlbmNlID0gKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgIGxldCBpc1JlbW92ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBmaWx0ZXJDYiA9IChlbnRyeTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAoZW50cnkubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGVudHJ5Lm5hbWUpIGVudHJpZXNOYW1lU2V0LmRlbGV0ZShlbnRyeS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IGNsb25lVG8gPSA8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIHRvU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICk6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICBhYnNvbHV0ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGQoZW50cnkubWlkZGxld2FyZSwgeyAuLi5lbnRyeSB9KTtcbiAgICB9KTtcbiAgICByZWxhdGl2ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGRSZWxhdGl2ZVRvKGVudHJ5Lm1pZGRsZXdhcmUsIHsgLi4uZW50cnkgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvU3RhY2s7XG4gIH07XG5cbiAgY29uc3QgZXhwYW5kUmVsYXRpdmVNaWRkbGV3YXJlTGlzdCA9IChcbiAgICBmcm9tOiBOb3JtYWxpemVkPE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5cbiAgKTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkTWlkZGxld2FyZUxpc3Q6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gICAgZnJvbS5iZWZvcmUuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZnJvbSk7XG4gICAgZnJvbS5hZnRlci5yZXZlcnNlKCkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXhwYW5kZWRNaWRkbGV3YXJlTGlzdDtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgZmluYWwgbGlzdCBvZiBtaWRkbGV3YXJlIGluIHRoZSBvcmRlciBvZiBiZWluZyBleGVjdXRlZCBpbiB0aGUgcmVzb2x2ZWQgaGFuZGxlci5cbiAgICovXG4gIGNvbnN0IGdldE1pZGRsZXdhcmVMaXN0ID0gKCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFic29sdXRlRW50cmllczogTm9ybWFsaXplZDxBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5bXSA9IFtdO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJpZXM6IE5vcm1hbGl6ZWQ8UmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgICBjb25zdCBub3JtYWxpemVkRW50cmllc05hbWVNYXA6IHtcbiAgICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTm9ybWFsaXplZDxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGFic29sdXRlRW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0ge1xuICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgYmVmb3JlOiBbXSxcbiAgICAgICAgYWZ0ZXI6IFtdLFxuICAgICAgfTtcbiAgICAgIGlmIChub3JtYWxpemVkRW50cnkubmFtZSkgbm9ybWFsaXplZEVudHJpZXNOYW1lTWFwW25vcm1hbGl6ZWRFbnRyeS5uYW1lXSA9IG5vcm1hbGl6ZWRFbnRyeTtcbiAgICAgIG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMucHVzaChub3JtYWxpemVkRW50cnkpO1xuICAgIH0pO1xuXG4gICAgcmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSB7XG4gICAgICAgIC4uLmVudHJ5LFxuICAgICAgICBiZWZvcmU6IFtdLFxuICAgICAgICBhZnRlcjogW10sXG4gICAgICB9O1xuICAgICAgaWYgKG5vcm1hbGl6ZWRFbnRyeS5uYW1lKSBub3JtYWxpemVkRW50cmllc05hbWVNYXBbbm9ybWFsaXplZEVudHJ5Lm5hbWVdID0gbm9ybWFsaXplZEVudHJ5O1xuICAgICAgbm9ybWFsaXplZFJlbGF0aXZlRW50cmllcy5wdXNoKG5vcm1hbGl6ZWRFbnRyeSk7XG4gICAgfSk7XG5cbiAgICBub3JtYWxpemVkUmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkudG9NaWRkbGV3YXJlKSB7XG4gICAgICAgIGNvbnN0IHRvTWlkZGxld2FyZSA9IG5vcm1hbGl6ZWRFbnRyaWVzTmFtZU1hcFtlbnRyeS50b01pZGRsZXdhcmVdO1xuICAgICAgICBpZiAodG9NaWRkbGV3YXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHtlbnRyeS50b01pZGRsZXdhcmV9IGlzIG5vdCBmb3VuZCB3aGVuIGFkZGluZyAke2VudHJ5Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIn0gbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSAke1xuICAgICAgICAgICAgICBlbnRyeS50b01pZGRsZXdhcmVcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYWZ0ZXJcIikge1xuICAgICAgICAgIHRvTWlkZGxld2FyZS5hZnRlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYmVmb3JlXCIpIHtcbiAgICAgICAgICB0b01pZGRsZXdhcmUuYmVmb3JlLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtYWluQ2hhaW4gPSBzb3J0KG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMpXG4gICAgICAubWFwKGV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QpXG4gICAgICAucmVkdWNlKCh3aG9sZUxpc3QsIGV4cGVuZGVkTWlkZGxld2FyZUxpc3QpID0+IHtcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSBpdCB3aXRoIEFycmF5LmZsYXQoKTtcbiAgICAgICAgd2hvbGVMaXN0LnB1c2goLi4uZXhwZW5kZWRNaWRkbGV3YXJlTGlzdCk7XG4gICAgICAgIHJldHVybiB3aG9sZUxpc3Q7XG4gICAgICB9LCBbXSBhcyBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5bXSk7XG4gICAgcmV0dXJuIG1haW5DaGFpbi5tYXAoKGVudHJ5KSA9PiBlbnRyeS5taWRkbGV3YXJlKTtcbiAgfTtcblxuICBjb25zdCBzdGFjayA9IHtcbiAgICBhZGQ6IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgb3ZlcnJpZGUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBlbnRyeTogQWJzb2x1dGVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgICAgICBwcmlvcml0eTogXCJub3JtYWxcIixcbiAgICAgICAgbWlkZGxld2FyZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH07XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBpZiAoZW50cmllc05hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgaWYgKCFvdmVycmlkZSkgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGVJbmRleCA9IGFic29sdXRlRW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgICBjb25zdCB0b092ZXJyaWRlID0gYWJzb2x1dGVFbnRyaWVzW3RvT3ZlcnJpZGVJbmRleF07XG4gICAgICAgICAgaWYgKHRvT3ZlcnJpZGUuc3RlcCAhPT0gZW50cnkuc3RlcCB8fCB0b092ZXJyaWRlLnByaW9yaXR5ICE9PSBlbnRyeS5wcmlvcml0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSB3aXRoICR7dG9PdmVycmlkZS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHt0b092ZXJyaWRlLnN0ZXB9IHN0ZXAgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICAgIGBvdmVycmlkZGVuIGJ5IHNhbWUtbmFtZSBtaWRkbGV3YXJlIHdpdGggJHtlbnRyeS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHtlbnRyeS5zdGVwfSBzdGVwLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFic29sdXRlRW50cmllcy5zcGxpY2UodG9PdmVycmlkZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyaWVzTmFtZVNldC5hZGQobmFtZSk7XG4gICAgICB9XG4gICAgICBhYnNvbHV0ZUVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfSxcblxuICAgIGFkZFJlbGF0aXZlVG86IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIG92ZXJyaWRlIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgZW50cnk6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+ID0ge1xuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGlmIChlbnRyaWVzTmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICBpZiAoIW92ZXJyaWRlKSB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBtaWRkbGV3YXJlIG5hbWUgJyR7bmFtZX0nYCk7XG4gICAgICAgICAgY29uc3QgdG9PdmVycmlkZUluZGV4ID0gcmVsYXRpdmVFbnRyaWVzLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGUgPSByZWxhdGl2ZUVudHJpZXNbdG9PdmVycmlkZUluZGV4XTtcbiAgICAgICAgICBpZiAodG9PdmVycmlkZS50b01pZGRsZXdhcmUgIT09IGVudHJ5LnRvTWlkZGxld2FyZSB8fCB0b092ZXJyaWRlLnJlbGF0aW9uICE9PSBlbnRyeS5yZWxhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSAke3RvT3ZlcnJpZGUucmVsYXRpb259IFwiJHt0b092ZXJyaWRlLnRvTWlkZGxld2FyZX1cIiBtaWRkbGV3YXJlIGNhbm5vdCBiZSBvdmVycmlkZGVuIGAgK1xuICAgICAgICAgICAgICAgIGBieSBzYW1lLW5hbWUgbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSBcIiR7ZW50cnkudG9NaWRkbGV3YXJlfVwiIG1pZGRsZXdhcmUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVsYXRpdmVFbnRyaWVzLnNwbGljZSh0b092ZXJyaWRlSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGVudHJpZXNOYW1lU2V0LmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9LFxuXG4gICAgY2xvbmU6ICgpID0+IGNsb25lVG8oY29uc3RydWN0U3RhY2s8SW5wdXQsIE91dHB1dD4oKSksXG5cbiAgICB1c2U6IChwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0PikgPT4ge1xuICAgICAgcGx1Z2luLmFwcGx5VG9TdGFjayhzdGFjayk7XG4gICAgfSxcblxuICAgIHJlbW92ZTogKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0b1JlbW92ZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgICBlbHNlIHJldHVybiByZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZUJ5VGFnOiAodG9SZW1vdmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgbGV0IGlzUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB7IHRhZ3MsIG5hbWUgfSA9IGVudHJ5O1xuICAgICAgICBpZiAodGFncyAmJiB0YWdzLmluY2x1ZGVzKHRvUmVtb3ZlKSkge1xuICAgICAgICAgIGlmIChuYW1lKSBlbnRyaWVzTmFtZVNldC5kZWxldGUobmFtZSk7XG4gICAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgICAgYWJzb2x1dGVFbnRyaWVzID0gYWJzb2x1dGVFbnRyaWVzLmZpbHRlcihmaWx0ZXJDYik7XG4gICAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICAgIHJldHVybiBpc1JlbW92ZWQ7XG4gICAgfSxcblxuICAgIGNvbmNhdDogPElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICAgIGZyb206IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPT4ge1xuICAgICAgY29uc3QgY2xvbmVkID0gY2xvbmVUbyhjb25zdHJ1Y3RTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCkpO1xuICAgICAgY2xvbmVkLnVzZShmcm9tKTtcbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfSxcblxuICAgIGFwcGx5VG9TdGFjazogY2xvbmVUbyxcblxuICAgIHJlc29sdmU6IDxJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIE91dHB1dD4oXG4gICAgICBoYW5kbGVyOiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPixcbiAgICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICAgKTogSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICAgIGZvciAoY29uc3QgbWlkZGxld2FyZSBvZiBnZXRNaWRkbGV3YXJlTGlzdCgpLnJldmVyc2UoKSkge1xuICAgICAgICBoYW5kbGVyID0gbWlkZGxld2FyZShoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXQsIE91dHB1dFR5cGU+LCBjb250ZXh0KSBhcyBhbnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZGxlciBhcyBIYW5kbGVyPElucHV0VHlwZSwgT3V0cHV0VHlwZT47XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHN0YWNrO1xufTtcblxuY29uc3Qgc3RlcFdlaWdodHM6IHsgW2tleSBpbiBTdGVwXTogbnVtYmVyIH0gPSB7XG4gIGluaXRpYWxpemU6IDUsXG4gIHNlcmlhbGl6ZTogNCxcbiAgYnVpbGQ6IDMsXG4gIGZpbmFsaXplUmVxdWVzdDogMixcbiAgZGVzZXJpYWxpemU6IDEsXG59O1xuXG5jb25zdCBwcmlvcml0eVdlaWdodHM6IHsgW2tleSBpbiBQcmlvcml0eV06IG51bWJlciB9ID0ge1xuICBoaWdoOiAzLFxuICBub3JtYWw6IDIsXG4gIGxvdzogMSxcbn07XG4iXX0=","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = /** @class */ (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlM0Q7SUFRRSxnQkFBWSxNQUFtQztRQUZ4QyxvQkFBZSxHQUFHLGNBQWMsRUFBNkIsQ0FBQztRQUduRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0QscUJBQUksR0FBSixVQUNFLE9BQStHLEVBQy9HLFdBQXNFLEVBQ3RFLEVBQTBDO1FBRTFDLElBQU0sT0FBTyxHQUFHLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxXQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakgsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FDSCxVQUFDLE1BQU0sSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUE3QixDQUE2QixFQUN6QyxVQUFDLEdBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBYixDQUFhLENBQzVCO2lCQUNBLEtBQUs7WUFDSiwrREFBK0Q7WUFDL0QsOEJBQThCO1lBQzlCLGNBQU8sQ0FBQyxDQUNULENBQUM7U0FDTDthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCx3QkFBTyxHQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBbkRELElBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uc3RydWN0U3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zdGFja1wiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIElDbGllbnQsIENvbW1hbmQsIE1ldGFkYXRhQmVhcmVyLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+IHtcbiAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPGFueSwgYW55LCBIYW5kbGVyT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gc2V0IGludGVybmFsbHkgYnkgdGhlIFNESywgYW5kIGlzXG4gICAqIG5vdCBwbGFubmVkIHRvIGJlIHVzZWQgYnkgY3VzdG9tZXIgY29kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4gPSBTbWl0aHlDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPjtcblxuZXhwb3J0IGNsYXNzIENsaWVudDxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIENsaWVudElucHV0IGV4dGVuZHMgb2JqZWN0LFxuICBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcixcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uIGV4dGVuZHMgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPlxuPiBpbXBsZW1lbnRzIElDbGllbnQ8Q2xpZW50SW5wdXQsIENsaWVudE91dHB1dCwgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uPiB7XG4gIHB1YmxpYyBtaWRkbGV3YXJlU3RhY2sgPSBjb25zdHJ1Y3RTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PigpO1xuICByZWFkb25seSBjb25maWc6IFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbjtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9ucz86IEhhbmRsZXJPcHRpb25zXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT47XG4gIHNlbmQ8SW5wdXRUeXBlIGV4dGVuZHMgQ2xpZW50SW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBDbGllbnRPdXRwdXQ+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0VHlwZSwgQ2xpZW50T3V0cHV0LCBPdXRwdXRUeXBlLCBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+PixcbiAgICBjYjogKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZFxuICApOiB2b2lkO1xuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMsXG4gICAgY2I6IChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnNPckNiPzogSGFuZGxlck9wdGlvbnMgfCAoKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZCksXG4gICAgY2I/OiAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT4gfCB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPckNiICE9PSBcImZ1bmN0aW9uXCIgPyBvcHRpb25zT3JDYiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiID8gKG9wdGlvbnNPckNiIGFzIChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWQpIDogY2I7XG4gICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUodGhpcy5taWRkbGV3YXJlU3RhY2sgYXMgYW55LCB0aGlzLmNvbmZpZywgb3B0aW9ucyk7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIChyZXN1bHQpID0+IGNhbGxiYWNrKG51bGwsIHJlc3VsdC5vdXRwdXQpLFxuICAgICAgICAgIChlcnI6IGFueSkgPT4gY2FsbGJhY2soZXJyKVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChcbiAgICAgICAgICAvLyBwcmV2ZW50IGFueSBlcnJvcnMgdGhyb3duIGluIHRoZSBjYWxsYmFjayBmcm9tIHRyaWdnZXJpbmcgYW5cbiAgICAgICAgICAvLyB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cbiAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlcihjb21tYW5kKS50aGVuKChyZXN1bHQpID0+IHJlc3VsdC5vdXRwdXQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3kpIHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = /** @class */ (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRDtJQUFBO1FBUVcsb0JBQWUsR0FBb0MsY0FBYyxFQUFpQixDQUFDO0lBTTlGLENBQUM7SUFBRCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RTdGFjayB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXN0YWNrXCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzIElDb21tYW5kLCBIYW5kbGVyLCBNZXRhZGF0YUJlYXJlciwgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbW1hbmQ8XG4gIElucHV0IGV4dGVuZHMgQ2xpZW50SW5wdXQsXG4gIE91dHB1dCBleHRlbmRzIENsaWVudE91dHB1dCxcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uLFxuICBDbGllbnRJbnB1dCBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgQ2xpZW50T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXIgPSBhbnlcbj4gaW1wbGVtZW50cyBJQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXQsIENsaWVudE91dHB1dCwgT3V0cHV0LCBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24+IHtcbiAgYWJzdHJhY3QgaW5wdXQ6IElucHV0O1xuICByZWFkb25seSBtaWRkbGV3YXJlU3RhY2s6IElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPSBjb25zdHJ1Y3RTdGFjazxJbnB1dCwgT3V0cHV0PigpO1xuICBhYnN0cmFjdCByZXNvbHZlTWlkZGxld2FyZShcbiAgICBzdGFjazogSU1pZGRsZXdhcmVTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PixcbiAgICBjb25maWd1cmF0aW9uOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24sXG4gICAgb3B0aW9uczogYW55XG4gICk6IEhhbmRsZXI8SW5wdXQsIE91dHB1dD47XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spread } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\nexport var StringWrapper = function () {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spread([null], arguments));\n //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = /** @class */ (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhenktanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7QUFNSDs7Ozs7R0FLRztBQUNILHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQWtCO0lBQzFDLG9GQUFvRjtJQUNwRixJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUN0RCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQUcsSUFBVyxHQUFLLFNBQVMsRUFBRSxDQUFDO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBQ0YsYUFBYSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7SUFDeEQsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLGFBQWE7UUFDcEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLElBQUk7UUFDZCxZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTdDO0lBQW9DLGtDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHdDQUFlLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQU0sUUFBUSxXQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsK0JBQU0sR0FBTjtRQUNFLE9BQU8saUJBQU0sUUFBUSxXQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHlCQUFVLEdBQWpCLFVBQWtCLE1BQVc7UUFDM0IsSUFBSSxNQUFNLFlBQVksY0FBYyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBakJELENBQW9DLGFBQWEsR0FpQmhEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXp5IFN0cmluZyBob2xkZXIgZm9yIEpTT04gdHlwZWQgY29udGVudHMuXG4gKi9cblxuaW50ZXJmYWNlIFN0cmluZ1dyYXBwZXIge1xuICBuZXcgKGFyZzogYW55KTogU3RyaW5nO1xufVxuXG4vKipcbiAqIEJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90c2xpYi9pc3N1ZXMvOTUsXG4gKiBUUyAnZXh0ZW5kcycgc2hpbSBkb2Vzbid0IHN1cHBvcnQgZXh0ZW5kaW5nIG5hdGl2ZSB0eXBlcyBsaWtlIFN0cmluZy5cbiAqIFNvIGhlcmUgd2UgY3JlYXRlIFN0cmluZ1dyYXBwZXIgdGhhdCBkdXBsaWNhdGUgZXZlcnl0aGluZyBmcm9tIFN0cmluZ1xuICogY2xhc3MgaW5jbHVkaW5nIGl0cyBwcm90b3R5cGUgY2hhaW4uIFNvIHdlIGNhbiBleHRlbmQgZnJvbSBoZXJlLlxuICovXG4vLyBAdHMtaWdub3JlIFN0cmluZ1dyYXBwZXIgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgc2ltcGxlIGNvbnN0cnVjdG9yXG5leHBvcnQgY29uc3QgU3RyaW5nV3JhcHBlcjogU3RyaW5nV3JhcHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgLy9AdHMtaWdub3JlICd0aGlzJyBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW55LCBidXQgT2JqZWN0LmdldFByb3RvdHlwZU9mIGFjY2VwdHMgYW55XG4gIGNvbnN0IENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICBjb25zdCBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoU3RyaW5nLCBbbnVsbCBhcyBhbnksIC4uLmFyZ3VtZW50c10pO1xuICAvL0B0cy1pZ25vcmUgQ2FsbCB3cmFwcGVkIFN0cmluZyBjb25zdHJ1Y3RvciBkaXJlY3RseSwgZG9uJ3QgYm90aGVyIHR5cGluZyBpdC5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpO1xuICByZXR1cm4gaW5zdGFuY2UgYXMgU3RyaW5nO1xufTtcblN0cmluZ1dyYXBwZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdHJpbmcucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7XG4gICAgdmFsdWU6IFN0cmluZ1dyYXBwZXIsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9LFxufSk7XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoU3RyaW5nV3JhcHBlciwgU3RyaW5nKTtcblxuZXhwb3J0IGNsYXNzIExhenlKc29uU3RyaW5nIGV4dGVuZHMgU3RyaW5nV3JhcHBlciB7XG4gIGRlc2VyaWFsaXplSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN1cGVyLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IGFueSk6IExhenlKc29uU3RyaW5nIHtcbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTGF6eUpzb25TdHJpbmcpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG5ldyBMYXp5SnNvblN0cmluZyhvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExhenlKc29uU3RyaW5nKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xuICB9XG59XG4iXX0=","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTRU5TSVRJVkVfU1RSSU5HID0gXCIqKipTZW5zaXRpdmVJbmZvcm1hdGlvbioqKlwiO1xuIl19","import { __extends } from \"tslib\";\nimport { PutRecordsInput, PutRecordsOutput } from \"../models/models_0\";\nimport { deserializeAws_json1_1PutRecordsCommand, serializeAws_json1_1PutRecordsCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Writes multiple data records into a Kinesis data stream in a single call (also\n * referred to as a PutRecords request). Use this operation to send data into\n * the stream for data ingestion and processing.

\n *

Each PutRecords request can support up to 500 records. Each record in\n * the request can be as large as 1 MiB, up to a limit of 5 MiB for the entire request,\n * including partition keys. Each shard can support writes up to 1,000 records per second,\n * up to a maximum data write total of 1 MiB per second.

\n *

You must specify the name of the stream that captures, stores, and transports the\n * data; and an array of request Records, with each record in the array\n * requiring a partition key and data blob. The record size limit applies to the total size\n * of the partition key and data blob.

\n *

The data blob can be any type of data; for example, a segment from a log file,\n * geographic/location data, website clickstream data, and so on.

\n *

The partition key is used by Kinesis Data Streams as input to a hash function that\n * maps the partition key and associated data to a specific shard. An MD5 hash function is\n * used to map partition keys to 128-bit integer values and to map associated data records\n * to shards. As a result of this hashing mechanism, all data records with the same\n * partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Data Streams\n * Developer Guide.

\n *

Each record in the Records array may include an optional parameter,\n * ExplicitHashKey, which overrides the partition key to shard mapping.\n * This parameter allows a data producer to determine explicitly the shard where the record\n * is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis\n * Data Streams Developer Guide.

\n *

The PutRecords response includes an array of response\n * Records. Each record in the response array directly correlates with a\n * record in the request array using natural ordering, from the top to the bottom of the\n * request and response. The response Records array always includes the same\n * number of records as the request array.

\n *

The response Records array includes both successfully and\n * unsuccessfully processed records. Kinesis Data Streams attempts to process all records\n * in each PutRecords request. A single record failure does not stop the\n * processing of subsequent records. As a result, PutRecords doesn't guarantee the ordering\n * of records. If you need to read records in the same order they are written to the\n * stream, use PutRecord instead of PutRecords, and write to\n * the same shard.

\n *

A successfully processed record includes ShardId and\n * SequenceNumber values. The ShardId parameter identifies\n * the shard in the stream where the record is stored. The SequenceNumber\n * parameter is an identifier assigned to the put record, unique to all records in the\n * stream.

\n *

An unsuccessfully processed record includes ErrorCode and\n * ErrorMessage values. ErrorCode reflects the type of error\n * and can be one of the following values:\n * ProvisionedThroughputExceededException or InternalFailure.\n * ErrorMessage provides more detailed information about the\n * ProvisionedThroughputExceededException exception including the account\n * ID, stream name, and shard ID of the record that was throttled. For more information\n * about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis\n * Data Streams Developer Guide.

\n * \n *

After you write a record to a stream, you cannot modify that record or its order\n * within the stream.

\n *
\n *

By default, data records are accessible for 24 hours from the time that they are\n * added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period.

\n */\nvar PutRecordsCommand = /** @class */ (function (_super) {\n __extends(PutRecordsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutRecordsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutRecordsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"KinesisClient\";\n var commandName = \"PutRecordsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutRecordsInput.filterSensitiveLog,\n outputFilterSensitiveLog: PutRecordsOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutRecordsCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1PutRecordsCommand(input, context);\n };\n PutRecordsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1PutRecordsCommand(output, context);\n };\n return PutRecordsCommand;\n}($Command));\nexport { PutRecordsCommand };\n//# sourceMappingURL=PutRecordsCommand.js.map","import { toHex } from \"@aws-sdk/util-hex-encoding\";\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n */\nvar Int64 = /** @class */ (function () {\n function Int64(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n Int64.fromNumber = function (number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(number + \" is too large (or, if negative, too small) to represent as an Int64\");\n }\n var bytes = new Uint8Array(8);\n for (var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n };\n /**\n * Called implicitly by infix arithmetic operators.\n */\n Int64.prototype.valueOf = function () {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n };\n Int64.prototype.toString = function () {\n return String(this.valueOf());\n };\n return Int64;\n}());\nexport { Int64 };\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50NjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSW50NjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSW5EOzs7Ozs7R0FNRztBQUNIO0lBQ0UsZUFBcUIsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNwQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTSxnQkFBVSxHQUFqQixVQUFrQixNQUFjO1FBQzlCLElBQUksTUFBTSxHQUFHLG1CQUFtQixJQUFJLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixFQUFFO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUksTUFBTSx3RUFBcUUsQ0FBQyxDQUFDO1NBQ2pHO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsSUFBSSxHQUFHLEVBQUU7WUFDeEcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN0QjtRQUVELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBTyxHQUFQO1FBQ0UsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQVUsQ0FBQztRQUN2QyxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELHdCQUFRLEdBQVI7UUFDRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0gsWUFBQztBQUFELENBQUMsQUF4Q0QsSUF3Q0M7O0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBaUI7SUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0tBQ2xCO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUFFLE1BQU07S0FDM0I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50NjQgYXMgSUludDY0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludDY0IGV4dGVuZHMgSUludDY0IHt9XG5cbi8qKlxuICogQSBsb3NzbGVzcyByZXByZXNlbnRhdGlvbiBvZiBhIHNpZ25lZCwgNjQtYml0IGludGVnZXIuIEluc3RhbmNlcyBvZiB0aGlzXG4gKiBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhcml0aG1ldGljIGV4cHJlc3Npb25zIGFzIGlmIHRoZXkgd2VyZSBudW1lcmljXG4gKiBwcmltaXRpdmVzLCBidXQgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHByZXNlcnZlZCB1bmNoYW5nZWQgYXMgdGhlXG4gKiBgYnl0ZXNgIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIFRoZSBieXRlcyBzaG91bGQgYmUgZW5jb2RlZCBhcyBiaWctZW5kaWFuLFxuICogdHdvJ3MgY29tcGxlbWVudCBpbnRlZ2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEludDY0IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXkpIHtcbiAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCAhPT0gOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW50NjQgYnVmZmVycyBtdXN0IGJlIGV4YWN0bHkgOCBieXRlc1wiKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbU51bWJlcihudW1iZXI6IG51bWJlcik6IEludDY0IHtcbiAgICBpZiAobnVtYmVyID4gOTIyMzM3MjAzNjg1NDc3NTgwNyB8fCBudW1iZXIgPCAtOTIyMzM3MjAzNjg1NDc3NTgwOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke251bWJlcn0gaXMgdG9vIGxhcmdlIChvciwgaWYgbmVnYXRpdmUsIHRvbyBzbWFsbCkgdG8gcmVwcmVzZW50IGFzIGFuIEludDY0YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSg4KTtcbiAgICBmb3IgKGxldCBpID0gNywgcmVtYWluaW5nID0gTWF0aC5hYnMoTWF0aC5yb3VuZChudW1iZXIpKTsgaSA+IC0xICYmIHJlbWFpbmluZyA+IDA7IGktLSwgcmVtYWluaW5nIC89IDI1Nikge1xuICAgICAgYnl0ZXNbaV0gPSByZW1haW5pbmc7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIG5lZ2F0ZShieXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnQ2NChieXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGltcGxpY2l0bHkgYnkgaW5maXggYXJpdGhtZXRpYyBvcGVyYXRvcnMuXG4gICAqL1xuICB2YWx1ZU9mKCk6IG51bWJlciB7XG4gICAgY29uc3QgYnl0ZXMgPSB0aGlzLmJ5dGVzLnNsaWNlKDApO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gYnl0ZXNbMF0gJiAwYjEwMDAwMDAwO1xuICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgbmVnYXRlKGJ5dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VJbnQodG9IZXgoYnl0ZXMpLCAxNikgKiAobmVnYXRpdmUgPyAtMSA6IDEpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlT2YoKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmVnYXRlKGJ5dGVzOiBVaW50OEFycmF5KTogdm9pZCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgYnl0ZXNbaV0gXj0gMHhmZjtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSA3OyBpID4gLTE7IGktLSkge1xuICAgIGJ5dGVzW2ldKys7XG4gICAgaWYgKGJ5dGVzW2ldICE9PSAwKSBicmVhaztcbiAgfVxufVxuIl19","import { __values } from \"tslib\";\nimport { fromHex, toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\n/**\n * @internal\n */\nvar HeaderMarshaller = /** @class */ (function () {\n function HeaderMarshaller(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n HeaderMarshaller.prototype.format = function (headers) {\n var e_1, _a, e_2, _b;\n var chunks = [];\n try {\n for (var _c = __values(Object.keys(headers)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var out = new Uint8Array(chunks.reduce(function (carry, bytes) { return carry + bytes.byteLength; }, 0));\n var position = 0;\n try {\n for (var chunks_1 = __values(chunks), chunks_1_1 = chunks_1.next(); !chunks_1_1.done; chunks_1_1 = chunks_1.next()) {\n var chunk = chunks_1_1.value;\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (chunks_1_1 && !chunks_1_1.done && (_b = chunks_1.return)) _b.call(chunks_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return out;\n };\n HeaderMarshaller.prototype.formatHeaderValue = function (header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n var shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n var intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4 /* integer */);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n var longBytes = new Uint8Array(9);\n longBytes[0] = 5 /* long */;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n var binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6 /* byteArray */);\n binView.setUint16(1, header.value.byteLength, false);\n var binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n var utf8Bytes = this.fromUtf8(header.value);\n var strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n var strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n var tsBytes = new Uint8Array(9);\n tsBytes[0] = 8 /* timestamp */;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(\"Invalid UUID received: \" + header.value);\n }\n var uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9 /* uuid */;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n };\n HeaderMarshaller.prototype.parse = function (headers) {\n var out = {};\n var position = 0;\n while (position < headers.byteLength) {\n var nameLength = headers.getUint8(position++);\n var name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: toHex(uuidBytes.subarray(0, 4)) + \"-\" + toHex(uuidBytes.subarray(4, 6)) + \"-\" + toHex(uuidBytes.subarray(6, 8)) + \"-\" + toHex(uuidBytes.subarray(8, 10)) + \"-\" + toHex(uuidBytes.subarray(10)),\n };\n break;\n default:\n throw new Error(\"Unrecognized header type tag\");\n }\n }\n return out;\n };\n return HeaderMarshaller;\n}());\nexport { HeaderMarshaller };\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nvar BOOLEAN_TAG = \"boolean\";\nvar BYTE_TAG = \"byte\";\nvar SHORT_TAG = \"short\";\nvar INT_TAG = \"integer\";\nvar LONG_TAG = \"long\";\nvar BINARY_TAG = \"binary\";\nvar STRING_TAG = \"string\";\nvar TIMESTAMP_TAG = \"timestamp\";\nvar UUID_TAG = \"uuid\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTWFyc2hhbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9IZWFkZXJNYXJzaGFsbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEM7O0dBRUc7QUFDSDtJQUNFLDBCQUE2QixNQUFlLEVBQW1CLFFBQWlCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQVM7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUFHLENBQUM7SUFFcEYsaUNBQU0sR0FBTixVQUFPLE9BQXVCOztRQUM1QixJQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDOztZQUVyQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO2dCQUExQyxJQUFNLFVBQVUsV0FBQTtnQkFDbkIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RHOzs7Ozs7Ozs7UUFFRCxJQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUssSUFBSyxPQUFBLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxFQUF4QixDQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDOztZQUNqQixLQUFvQixJQUFB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QUMxQixpRUFBWSxDQUFBO0lBQ1osbUVBQVMsQ0FBQTtJQUNULHlEQUFJLENBQUE7SUFDSiwyREFBSyxDQUFBO0lBQ0wsK0RBQU8sQ0FBQTtJQUNQLHlEQUFJLENBQUE7SUFDSixtRUFBUyxDQUFBO0lBQ1QsNkRBQU0sQ0FBQTtJQUNOLG1FQUFTLENBQUE7SUFDVCx5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQVhVLGlCQUFpQixLQUFqQixpQkFBaUIsUUFXM0I7QUFFRCxJQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDOUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUMxQixJQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDMUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUM1QixJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFDNUIsSUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ2xDLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUV4QixJQUFNLFlBQVksR0FBRyxnRUFBZ0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29kZXIsIEVuY29kZXIsIE1lc3NhZ2VIZWFkZXJzLCBNZXNzYWdlSGVhZGVyVmFsdWUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGZyb21IZXgsIHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7IEludDY0IH0gZnJvbSBcIi4vSW50NjRcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEhlYWRlck1hcnNoYWxsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvVXRmODogRW5jb2RlciwgcHJpdmF0ZSByZWFkb25seSBmcm9tVXRmODogRGVjb2Rlcikge31cblxuICBmb3JtYXQoaGVhZGVyczogTWVzc2FnZUhlYWRlcnMpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBjaHVua3M6IEFycmF5PFVpbnQ4QXJyYXk+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5mcm9tVXRmOChoZWFkZXJOYW1lKTtcbiAgICAgIGNodW5rcy5wdXNoKFVpbnQ4QXJyYXkuZnJvbShbYnl0ZXMuYnl0ZUxlbmd0aF0pLCBieXRlcywgdGhpcy5mb3JtYXRIZWFkZXJWYWx1ZShoZWFkZXJzW2hlYWRlck5hbWVdKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtzLnJlZHVjZSgoY2FycnksIGJ5dGVzKSA9PiBjYXJyeSArIGJ5dGVzLmJ5dGVMZW5ndGgsIDApKTtcbiAgICBsZXQgcG9zaXRpb24gPSAwO1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBvdXQuc2V0KGNodW5rLCBwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhlYWRlclZhbHVlKGhlYWRlcjogTWVzc2FnZUhlYWRlclZhbHVlKTogVWludDhBcnJheSB7XG4gICAgc3dpdGNoIChoZWFkZXIudHlwZSkge1xuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbaGVhZGVyLnZhbHVlID8gSEVBREVSX1ZBTFVFX1RZUEUuYm9vbFRydWUgOiBIRUFERVJfVkFMVUVfVFlQRS5ib29sRmFsc2VdKTtcbiAgICAgIGNhc2UgXCJieXRlXCI6XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW0hFQURFUl9WQUxVRV9UWVBFLmJ5dGUsIGhlYWRlci52YWx1ZV0pO1xuICAgICAgY2FzZSBcInNob3J0XCI6XG4gICAgICAgIGNvbnN0IHNob3J0VmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMykpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0VWludDgoMCwgSEVBREVSX1ZBTFVFX1RZUEUuc2hvcnQpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0SW50MTYoMSwgaGVhZGVyLnZhbHVlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShzaG9ydFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJpbnRlZ2VyXCI6XG4gICAgICAgIGNvbnN0IGludFZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDUpKTtcbiAgICAgICAgaW50Vmlldy5zZXRVaW50OCgwLCBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyKTtcbiAgICAgICAgaW50Vmlldy5zZXRJbnQzMigxLCBoZWFkZXIudmFsdWUsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGludFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICAgIGNvbnN0IGxvbmdCeXRlcyA9IG5ldyBVaW50OEFycmF5KDkpO1xuICAgICAgICBsb25nQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS5sb25nO1xuICAgICAgICBsb25nQnl0ZXMuc2V0KGhlYWRlci52YWx1ZS5ieXRlcywgMSk7XG4gICAgICAgIHJldHVybiBsb25nQnl0ZXM7XG4gICAgICBjYXNlIFwiYmluYXJ5XCI6XG4gICAgICAgIGNvbnN0IGJpblZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyBoZWFkZXIudmFsdWUuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBiaW5WaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLmJ5dGVBcnJheSk7XG4gICAgICAgIGJpblZpZXcuc2V0VWludDE2KDEsIGhlYWRlci52YWx1ZS5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGJpbkJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluVmlldy5idWZmZXIpO1xuICAgICAgICBiaW5CeXRlcy5zZXQoaGVhZGVyLnZhbHVlLCAzKTtcbiAgICAgICAgcmV0dXJuIGJpbkJ5dGVzO1xuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICBjb25zdCB1dGY4Qnl0ZXMgPSB0aGlzLmZyb21VdGY4KGhlYWRlci52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHN0clZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyB1dGY4Qnl0ZXMuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBzdHJWaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLnN0cmluZyk7XG4gICAgICAgIHN0clZpZXcuc2V0VWludDE2KDEsIHV0ZjhCeXRlcy5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN0ckJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyVmlldy5idWZmZXIpO1xuICAgICAgICBzdHJCeXRlcy5zZXQodXRmOEJ5dGVzLCAzKTtcbiAgICAgICAgcmV0dXJuIHN0ckJ5dGVzO1xuICAgICAgY2FzZSBcInRpbWVzdGFtcFwiOlxuICAgICAgICBjb25zdCB0c0J5dGVzID0gbmV3IFVpbnQ4QXJyYXkoOSk7XG4gICAgICAgIHRzQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA7XG4gICAgICAgIHRzQnl0ZXMuc2V0KEludDY0LmZyb21OdW1iZXIoaGVhZGVyLnZhbHVlLnZhbHVlT2YoKSkuYnl0ZXMsIDEpO1xuICAgICAgICByZXR1cm4gdHNCeXRlcztcbiAgICAgIGNhc2UgXCJ1dWlkXCI6XG4gICAgICAgIGlmICghVVVJRF9QQVRURVJOLnRlc3QoaGVhZGVyLnZhbHVlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBVVUlEIHJlY2VpdmVkOiAke2hlYWRlci52YWx1ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHV1aWRCeXRlcyA9IG5ldyBVaW50OEFycmF5KDE3KTtcbiAgICAgICAgdXVpZEJ5dGVzWzBdID0gSEVBREVSX1ZBTFVFX1RZUEUudXVpZDtcbiAgICAgICAgdXVpZEJ5dGVzLnNldChmcm9tSGV4KGhlYWRlci52YWx1ZS5yZXBsYWNlKC9cXC0vZywgXCJcIikpLCAxKTtcbiAgICAgICAgcmV0dXJuIHV1aWRCeXRlcztcbiAgICB9XG4gIH1cblxuICBwYXJzZShoZWFkZXJzOiBEYXRhVmlldyk6IE1lc3NhZ2VIZWFkZXJzIHtcbiAgICBjb25zdCBvdXQ6IE1lc3NhZ2VIZWFkZXJzID0ge307XG4gICAgbGV0IHBvc2l0aW9uID0gMDtcblxuICAgIHdoaWxlIChwb3NpdGlvbiA8IGhlYWRlcnMuYnl0ZUxlbmd0aCkge1xuICAgICAgY29uc3QgbmFtZUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKyk7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBuYW1lTGVuZ3RoKSk7XG4gICAgICBwb3NpdGlvbiArPSBuYW1lTGVuZ3RoO1xuXG4gICAgICBzd2l0Y2ggKGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKykpIHtcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5ib29sVHJ1ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCT09MRUFOX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYm9vbEZhbHNlOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IEJPT0xFQU5fVEFHLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCWVRFX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLmdldEludDgocG9zaXRpb24rKyksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zaG9ydDpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBTSE9SVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQxNihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IElOVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQzMihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5sb25nOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IExPTkdfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBJbnQ2NChuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZUFycmF5OlxuICAgICAgICAgIGNvbnN0IGJpbmFyeUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDE2KHBvc2l0aW9uLCBmYWxzZSk7XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCSU5BUllfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBVaW50OEFycmF5KGhlYWRlcnMuYnVmZmVyLCBoZWFkZXJzLmJ5dGVPZmZzZXQgKyBwb3NpdGlvbiwgYmluYXJ5TGVuZ3RoKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IGJpbmFyeUxlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zdHJpbmc6XG4gICAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gaGVhZGVycy5nZXRVaW50MTYocG9zaXRpb24sIGZhbHNlKTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAyO1xuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IFNUUklOR19UQUcsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBzdHJpbmdMZW5ndGgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmluZ0xlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA6XG4gICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgdHlwZTogVElNRVNUQU1QX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShuZXcgSW50NjQobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCA4KSkudmFsdWVPZigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUudXVpZDpcbiAgICAgICAgICBjb25zdCB1dWlkQnl0ZXMgPSBuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDE2KTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAxNjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBVVUlEX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBgJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMCwgNCkpfS0ke3RvSGV4KHV1aWRCeXRlcy5zdWJhcnJheSg0LCA2KSl9LSR7dG9IZXgoXG4gICAgICAgICAgICAgIHV1aWRCeXRlcy5zdWJhcnJheSg2LCA4KVxuICAgICAgICAgICAgKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoOCwgMTApKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMTApKX1gLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgaGVhZGVyIHR5cGUgdGFnYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuXG5jb25zdCBlbnVtIEhFQURFUl9WQUxVRV9UWVBFIHtcbiAgYm9vbFRydWUgPSAwLFxuICBib29sRmFsc2UsXG4gIGJ5dGUsXG4gIHNob3J0LFxuICBpbnRlZ2VyLFxuICBsb25nLFxuICBieXRlQXJyYXksXG4gIHN0cmluZyxcbiAgdGltZXN0YW1wLFxuICB1dWlkLFxufVxuXG5jb25zdCBCT09MRUFOX1RBRyA9IFwiYm9vbGVhblwiO1xuY29uc3QgQllURV9UQUcgPSBcImJ5dGVcIjtcbmNvbnN0IFNIT1JUX1RBRyA9IFwic2hvcnRcIjtcbmNvbnN0IElOVF9UQUcgPSBcImludGVnZXJcIjtcbmNvbnN0IExPTkdfVEFHID0gXCJsb25nXCI7XG5jb25zdCBCSU5BUllfVEFHID0gXCJiaW5hcnlcIjtcbmNvbnN0IFNUUklOR19UQUcgPSBcInN0cmluZ1wiO1xuY29uc3QgVElNRVNUQU1QX1RBRyA9IFwidGltZXN0YW1wXCI7XG5jb25zdCBVVUlEX1RBRyA9IFwidXVpZFwiO1xuXG5jb25zdCBVVUlEX1BBVFRFUk4gPSAvXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSQvO1xuIl19","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\n/**\n * A marshaller that can convert binary-packed event stream messages into\n * JavaScript objects and back again into their binary format.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message.\n */\n EventStreamMarshaller.prototype.marshall = function (_a) {\n var rawHeaders = _a.headers, body = _a.body;\n var headers = this.headerMarshaller.format(rawHeaders);\n var length = headers.byteLength + body.byteLength + 16;\n var out = new Uint8Array(length);\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n var checksum = new Crc32();\n // Format message\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n // Write trailing message checksum\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n };\n /**\n * Convert a binary event stream message into a JavaScript object with an\n * opaque, binary body and tagged, parsed headers.\n */\n EventStreamMarshaller.prototype.unmarshall = function (message) {\n var _a = splitMessage(message), headers = _a.headers, body = _a.body;\n return { headers: this.headerMarshaller.parse(headers), body: body };\n };\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n EventStreamMarshaller.prototype.formatHeaders = function (rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOzs7R0FHRztBQUNIO0lBR0UsK0JBQVksTUFBZSxFQUFFLFFBQWlCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsd0NBQVEsR0FBUixVQUFTLEVBQXNDO1lBQTNCLFVBQVUsYUFBQSxFQUFFLElBQUksVUFBQTtRQUNsQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFekQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRTdCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV2QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMENBQVUsR0FBVixVQUFXLE9BQXdCO1FBQzNCLElBQUEsS0FBb0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUF2QyxPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQTBCLENBQUM7UUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNILDZDQUFhLEdBQWIsVUFBYyxVQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQWpERCxJQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlSGVhZGVycyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBIZWFkZXJNYXJzaGFsbGVyIH0gZnJvbSBcIi4vSGVhZGVyTWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgc3BsaXRNZXNzYWdlIH0gZnJvbSBcIi4vc3BsaXRNZXNzYWdlXCI7XG5cbi8qKlxuICogQSBtYXJzaGFsbGVyIHRoYXQgY2FuIGNvbnZlcnQgYmluYXJ5LXBhY2tlZCBldmVudCBzdHJlYW0gbWVzc2FnZXMgaW50b1xuICogSmF2YVNjcmlwdCBvYmplY3RzIGFuZCBiYWNrIGFnYWluIGludG8gdGhlaXIgYmluYXJ5IGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGVyTWFyc2hhbGxlcjogSGVhZGVyTWFyc2hhbGxlcjtcblxuICBjb25zdHJ1Y3Rvcih0b1V0Zjg6IEVuY29kZXIsIGZyb21VdGY4OiBEZWNvZGVyKSB7XG4gICAgdGhpcy5oZWFkZXJNYXJzaGFsbGVyID0gbmV3IEhlYWRlck1hcnNoYWxsZXIodG9VdGY4LCBmcm9tVXRmOCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIHN0cnVjdHVyZWQgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0YWdnZWQgaGVhZGVycyBpbnRvIGEgYmluYXJ5XG4gICAqIGV2ZW50IHN0cmVhbSBtZXNzYWdlLlxuICAgKi9cbiAgbWFyc2hhbGwoeyBoZWFkZXJzOiByYXdIZWFkZXJzLCBib2R5IH06IE1lc3NhZ2UpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJNYXJzaGFsbGVyLmZvcm1hdChyYXdIZWFkZXJzKTtcbiAgICBjb25zdCBsZW5ndGggPSBoZWFkZXJzLmJ5dGVMZW5ndGggKyBib2R5LmJ5dGVMZW5ndGggKyAxNjtcblxuICAgIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhvdXQuYnVmZmVyLCBvdXQuYnl0ZU9mZnNldCwgb3V0LmJ5dGVMZW5ndGgpO1xuICAgIGNvbnN0IGNoZWNrc3VtID0gbmV3IENyYzMyKCk7XG5cbiAgICAvLyBGb3JtYXQgbWVzc2FnZVxuICAgIHZpZXcuc2V0VWludDMyKDAsIGxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDQsIGhlYWRlcnMuYnl0ZUxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDgsIGNoZWNrc3VtLnVwZGF0ZShvdXQuc3ViYXJyYXkoMCwgOCkpLmRpZ2VzdCgpLCBmYWxzZSk7XG4gICAgb3V0LnNldChoZWFkZXJzLCAxMik7XG4gICAgb3V0LnNldChib2R5LCBoZWFkZXJzLmJ5dGVMZW5ndGggKyAxMik7XG5cbiAgICAvLyBXcml0ZSB0cmFpbGluZyBtZXNzYWdlIGNoZWNrc3VtXG4gICAgdmlldy5zZXRVaW50MzIobGVuZ3RoIC0gNCwgY2hlY2tzdW0udXBkYXRlKG91dC5zdWJhcnJheSg4LCBsZW5ndGggLSA0KSkuZGlnZXN0KCksIGZhbHNlKTtcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIGJpbmFyeSBldmVudCBzdHJlYW0gbWVzc2FnZSBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBhblxuICAgKiBvcGFxdWUsIGJpbmFyeSBib2R5IGFuZCB0YWdnZWQsIHBhcnNlZCBoZWFkZXJzLlxuICAgKi9cbiAgdW5tYXJzaGFsbChtZXNzYWdlOiBBcnJheUJ1ZmZlclZpZXcpOiBNZXNzYWdlIHtcbiAgICBjb25zdCB7IGhlYWRlcnMsIGJvZHkgfSA9IHNwbGl0TWVzc2FnZShtZXNzYWdlKTtcblxuICAgIHJldHVybiB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyTWFyc2hhbGxlci5wYXJzZShoZWFkZXJzKSwgYm9keSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBzdHJ1Y3R1cmVkIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGFnZ2VkIGhlYWRlcnMgaW50byBhIGJpbmFyeVxuICAgKiBldmVudCBzdHJlYW0gbWVzc2FnZSBoZWFkZXIuXG4gICAqL1xuICBmb3JtYXRIZWFkZXJzKHJhd0hlYWRlcnM6IE1lc3NhZ2VIZWFkZXJzKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyTWFyc2hhbGxlci5mb3JtYXQocmF3SGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==","import { Crc32 } from \"@aws-crypto/crc32\";\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n/**\n * @internal\n */\nexport function splitMessage(_a) {\n var byteLength = _a.byteLength, byteOffset = _a.byteOffset, buffer = _a.buffer;\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n var view = new DataView(buffer, byteOffset, byteLength);\n var messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n var headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n var expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n var expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n var checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(\"The prelude checksum specified in the message (\" + expectedPreludeChecksum + \") does not match the calculated CRC32 checksum (\" + checksummer.digest() + \")\");\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\"The message checksum (\" + checksummer.digest() + \") did not match the expected value of \" + expectedMessageChecksum);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwbGl0TWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUMsdURBQXVEO0FBQ3ZELElBQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLHlDQUF5QztBQUN6QyxJQUFNLGNBQWMsR0FBRyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFDakQscUNBQXFDO0FBQ3JDLElBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMxQixtRkFBbUY7QUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQztBQVVwRTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBbUQ7UUFBakQsVUFBVSxnQkFBQSxFQUFFLFVBQVUsZ0JBQUEsRUFBRSxNQUFNLFlBQUE7SUFDM0QsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUxRCxJQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUvQyxJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLElBQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXBGLElBQU0sV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRixJQUFJLHVCQUF1QixLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLG9EQUFrRCx1QkFBdUIsd0RBQW1ELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBRyxDQUNwSixDQUFDO0tBQ0g7SUFFRCxXQUFXLENBQUMsTUFBTSxDQUNoQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLGNBQWMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FDckcsQ0FBQztJQUNGLElBQUksdUJBQXVCLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsMkJBQXlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsOENBQXlDLHVCQUF5QixDQUNoSCxDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsY0FBYyxHQUFHLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDMUYsSUFBSSxFQUFFLElBQUksVUFBVSxDQUNsQixNQUFNLEVBQ04sVUFBVSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsWUFBWSxFQUM1RCxhQUFhLEdBQUcsWUFBWSxHQUFHLENBQUMsY0FBYyxHQUFHLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FDcEY7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5cbi8vIEFsbCBwcmVsdWRlIGNvbXBvbmVudHMgYXJlIHVuc2lnbmVkLCAzMi1iaXQgaW50ZWdlcnNcbmNvbnN0IFBSRUxVREVfTUVNQkVSX0xFTkdUSCA9IDQ7XG4vLyBUaGUgcHJlbHVkZSBjb25zaXN0cyBvZiB0d28gY29tcG9uZW50c1xuY29uc3QgUFJFTFVERV9MRU5HVEggPSBQUkVMVURFX01FTUJFUl9MRU5HVEggKiAyO1xuLy8gQ2hlY2tzdW1zIGFyZSBhbHdheXMgQ1JDMzIgaGFzaGVzLlxuY29uc3QgQ0hFQ0tTVU1fTEVOR1RIID0gNDtcbi8vIE1lc3NhZ2VzIG11c3QgaW5jbHVkZSBhIGZ1bGwgcHJlbHVkZSwgYSBwcmVsdWRlIGNoZWNrc3VtLCBhbmQgYSBtZXNzYWdlIGNoZWNrc3VtXG5jb25zdCBNSU5JTVVNX01FU1NBR0VfTEVOR1RIID0gUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEggKiAyO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VQYXJ0cyB7XG4gIGhlYWRlcnM6IERhdGFWaWV3O1xuICBib2R5OiBVaW50OEFycmF5O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRNZXNzYWdlKHsgYnl0ZUxlbmd0aCwgYnl0ZU9mZnNldCwgYnVmZmVyIH06IEFycmF5QnVmZmVyVmlldyk6IE1lc3NhZ2VQYXJ0cyB7XG4gIGlmIChieXRlTGVuZ3RoIDwgTUlOSU1VTV9NRVNTQUdFX0xFTkdUSCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIG1lc3NhZ2UgdG9vIHNob3J0IHRvIGFjY29tbW9kYXRlIGV2ZW50IHN0cmVhbSBtZXNzYWdlIG92ZXJoZWFkXCIpO1xuICB9XG5cbiAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpO1xuXG4gIGNvbnN0IG1lc3NhZ2VMZW5ndGggPSB2aWV3LmdldFVpbnQzMigwLCBmYWxzZSk7XG5cbiAgaWYgKGJ5dGVMZW5ndGggIT09IG1lc3NhZ2VMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXBvcnRlZCBtZXNzYWdlIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCByZWNlaXZlZCBtZXNzYWdlIGxlbmd0aFwiKTtcbiAgfVxuXG4gIGNvbnN0IGhlYWRlckxlbmd0aCA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTUVNQkVSX0xFTkdUSCwgZmFsc2UpO1xuICBjb25zdCBleHBlY3RlZFByZWx1ZGVDaGVja3N1bSA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTEVOR1RILCBmYWxzZSk7XG4gIGNvbnN0IGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtID0gdmlldy5nZXRVaW50MzIoYnl0ZUxlbmd0aCAtIENIRUNLU1VNX0xFTkdUSCwgZmFsc2UpO1xuXG4gIGNvbnN0IGNoZWNrc3VtbWVyID0gbmV3IENyYzMyKCkudXBkYXRlKG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgYnl0ZU9mZnNldCwgUFJFTFVERV9MRU5HVEgpKTtcbiAgaWYgKGV4cGVjdGVkUHJlbHVkZUNoZWNrc3VtICE9PSBjaGVja3N1bW1lci5kaWdlc3QoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgcHJlbHVkZSBjaGVja3N1bSBzcGVjaWZpZWQgaW4gdGhlIG1lc3NhZ2UgKCR7ZXhwZWN0ZWRQcmVsdWRlQ2hlY2tzdW19KSBkb2VzIG5vdCBtYXRjaCB0aGUgY2FsY3VsYXRlZCBDUkMzMiBjaGVja3N1bSAoJHtjaGVja3N1bW1lci5kaWdlc3QoKX0pYFxuICAgICk7XG4gIH1cblxuICBjaGVja3N1bW1lci51cGRhdGUoXG4gICAgbmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCBieXRlT2Zmc2V0ICsgUFJFTFVERV9MRU5HVEgsIGJ5dGVMZW5ndGggLSAoUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEgpKVxuICApO1xuICBpZiAoZXhwZWN0ZWRNZXNzYWdlQ2hlY2tzdW0gIT09IGNoZWNrc3VtbWVyLmRpZ2VzdCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBtZXNzYWdlIGNoZWNrc3VtICgke2NoZWNrc3VtbWVyLmRpZ2VzdCgpfSkgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgJHtleHBlY3RlZE1lc3NhZ2VDaGVja3N1bX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZGVyczogbmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RILCBoZWFkZXJMZW5ndGgpLFxuICAgIGJvZHk6IG5ldyBVaW50OEFycmF5KFxuICAgICAgYnVmZmVyLFxuICAgICAgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RIICsgaGVhZGVyTGVuZ3RoLFxuICAgICAgbWVzc2FnZUxlbmd0aCAtIGhlYWRlckxlbmd0aCAtIChQUkVMVURFX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSClcbiAgICApLFxuICB9O1xufVxuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __asyncGenerator, __await, __generator } from \"tslib\";\nexport function getChunkedStream(source) {\n var _a;\n var currentMessageTotalLength = 0;\n var currentMessagePendingLength = 0;\n var currentMessage = null;\n var messageLengthBuffer = null;\n var allocateMessage = function (size) {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n var currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false); //set big-endian Uint32 to 0~3 bytes\n };\n var iterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var sourceIterator, _a, value, done, chunkLength, currentOffset, bytesRemaining, numBytesForTotal, numBytesToWrite;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n sourceIterator = source[Symbol.asyncIterator]();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(sourceIterator.next())];\n case 2:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3 /*break*/, 10];\n if (!!currentMessageTotalLength) return [3 /*break*/, 4];\n return [4 /*yield*/, __await(void 0)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n if (!(currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 7];\n return [4 /*yield*/, __await(currentMessage)];\n case 5: return [4 /*yield*/, _b.sent()];\n case 6:\n _b.sent();\n return [3 /*break*/, 8];\n case 7: throw new Error(\"Truncated event message received.\");\n case 8: return [4 /*yield*/, __await(void 0)];\n case 9: return [2 /*return*/, _b.sent()];\n case 10:\n chunkLength = value.length;\n currentOffset = 0;\n _b.label = 11;\n case 11:\n if (!(currentOffset < chunkLength)) return [3 /*break*/, 15];\n // create new message if necessary\n if (!currentMessage) {\n bytesRemaining = chunkLength - currentOffset;\n // prevent edge case where total length spans 2 chunks\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n numBytesForTotal = Math.min(4 - currentMessagePendingLength, // remaining bytes to fill the messageLengthBuffer\n bytesRemaining // bytes left in chunk\n );\n messageLengthBuffer.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n // not enough information to create the current message\n return [3 /*break*/, 15];\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, // number of bytes left to complete message\n chunkLength - currentOffset // number of bytes left in the original chunk\n );\n currentMessage.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (!(currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 14];\n return [4 /*yield*/, __await(currentMessage)];\n case 12: \n // push out the message\n return [4 /*yield*/, _b.sent()];\n case 13:\n // push out the message\n _b.sent();\n // cleanup\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n _b.label = 14;\n case 14: return [3 /*break*/, 11];\n case 15: return [3 /*break*/, 1];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = iterator,\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2h1bmtlZFN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDaHVua2VkU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBaUM7O0lBQ2hFLElBQUkseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksY0FBYyxHQUFzQixJQUFJLENBQUM7SUFDN0MsSUFBSSxtQkFBbUIsR0FBc0IsSUFBSSxDQUFDO0lBQ2xELElBQU0sZUFBZSxHQUFHLFVBQUMsSUFBWTtRQUNuQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDJCQUEyQixHQUFHLENBQUMsQ0FBQztRQUNoQyxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBTSxrQkFBa0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7SUFDcEYsQ0FBQyxDQUFDO0lBRUYsSUFBTSxRQUFRLEdBQUc7Ozs7Ozt3QkFDVCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDOzs7NkJBQy9DLElBQUk7d0JBQ2UsNkJBQU0sY0FBYyxDQUFDLElBQUksRUFBRSxHQUFBOzt3QkFBN0MsS0FBa0IsU0FBMkIsRUFBM0MsS0FBSyxXQUFBLEVBQUUsSUFBSSxVQUFBOzZCQUNmLElBQUksRUFBSix5QkFBSTs2QkFDRixDQUFDLHlCQUF5QixFQUExQix3QkFBMEI7OzRCQUM1QixpQ0FBTzs7NkJBQ0UsQ0FBQSx5QkFBeUIsS0FBSywyQkFBMkIsQ0FBQSxFQUF6RCx3QkFBeUQ7cURBQzVELGNBQTRCOzRCQUFsQyxnQ0FBa0M7O3dCQUFsQyxTQUFrQyxDQUFDOzs0QkFFbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs0QkFFdkQsaUNBQU87O3dCQUdILFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUM3QixhQUFhLEdBQUcsQ0FBQyxDQUFDOzs7NkJBRWYsQ0FBQSxhQUFhLEdBQUcsV0FBVyxDQUFBO3dCQUNoQyxrQ0FBa0M7d0JBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUU7NEJBRWIsY0FBYyxHQUFHLFdBQVcsR0FBRyxhQUFhLENBQUM7NEJBQ25ELHNEQUFzRDs0QkFDdEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dDQUN4QixtQkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs2QkFDekM7NEJBQ0ssZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDL0IsQ0FBQyxHQUFHLDJCQUEyQixFQUFFLGtEQUFrRDs0QkFDbkYsY0FBYyxDQUFDLHNCQUFzQjs2QkFDdEMsQ0FBQzs0QkFFRixtQkFBbUIsQ0FBQyxHQUFHOzRCQUNyQixvRUFBb0U7NEJBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxFQUM1RCwyQkFBMkIsQ0FDNUIsQ0FBQzs0QkFFRiwyQkFBMkIsSUFBSSxnQkFBZ0IsQ0FBQzs0QkFDaEQsYUFBYSxJQUFJLGdCQUFnQixDQUFDOzRCQUVsQyxJQUFJLDJCQUEyQixHQUFHLENBQUMsRUFBRTtnQ0FDbkMsdURBQXVEO2dDQUN2RCx5QkFBTTs2QkFDUDs0QkFDRCxlQUFlLENBQUMsSUFBSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUM5RSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7eUJBQzVCO3dCQUdLLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUM5Qix5QkFBeUIsR0FBRywyQkFBMkIsRUFBRSwyQ0FBMkM7d0JBQ3BHLFdBQVcsR0FBRyxhQUFhLENBQUMsNkNBQTZDO3lCQUMxRSxDQUFDO3dCQUNGLGNBQWUsQ0FBQyxHQUFHO3dCQUNqQixvRUFBb0U7d0JBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxlQUFlLENBQUMsRUFDM0QsMkJBQTJCLENBQzVCLENBQUM7d0JBQ0YsMkJBQTJCLElBQUksZUFBZSxDQUFDO3dCQUMvQyxhQUFhLElBQUksZUFBZSxDQUFDOzZCQUc3QixDQUFBLHlCQUF5QixJQUFJLHlCQUF5QixLQUFLLDJCQUEyQixDQUFBLEVBQXRGLHlCQUFzRjtxREFFbEYsY0FBNEI7O29CQURsQyx1QkFBdUI7b0JBQ3ZCLGdDQUFrQzs7d0JBRGxDLHVCQUF1Qjt3QkFDdkIsU0FBa0MsQ0FBQzt3QkFDbkMsVUFBVTt3QkFDVixjQUFjLEdBQUcsSUFBSSxDQUFDO3dCQUN0Qix5QkFBeUIsR0FBRyxDQUFDLENBQUM7d0JBQzlCLDJCQUEyQixHQUFHLENBQUMsQ0FBQzs7Ozs7Ozs7S0FJdkMsQ0FBQztJQUVGO1FBQ0UsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHLFFBQVE7V0FDaEM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldENodW5rZWRTdHJlYW0oc291cmNlOiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+KTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gIGxldCBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgbGV0IGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDA7XG4gIGxldCBjdXJyZW50TWVzc2FnZTogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWVzc2FnZUxlbmd0aEJ1ZmZlcjogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBjb25zdCBhbGxvY2F0ZU1lc3NhZ2UgPSAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gYWxsb2NhdGUgYW4gZXZlbnQgbWVzc2FnZSB3aGVyZSBzaXplIHdhcyBub3QgYSBudW1iZXI6IFwiICsgc2l6ZSk7XG4gICAgfVxuICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggPSBzaXplO1xuICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDQ7XG4gICAgY3VycmVudE1lc3NhZ2UgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICBjb25zdCBjdXJyZW50TWVzc2FnZVZpZXcgPSBuZXcgRGF0YVZpZXcoY3VycmVudE1lc3NhZ2UuYnVmZmVyKTtcbiAgICBjdXJyZW50TWVzc2FnZVZpZXcuc2V0VWludDMyKDAsIHNpemUsIGZhbHNlKTsgLy9zZXQgYmlnLWVuZGlhbiBVaW50MzIgdG8gMH4zIGJ5dGVzXG4gIH07XG5cbiAgY29uc3QgaXRlcmF0b3IgPSBhc3luYyBmdW5jdGlvbiogKCkge1xuICAgIGNvbnN0IHNvdXJjZUl0ZXJhdG9yID0gc291cmNlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBkb25lIH0gPSBhd2FpdCBzb3VyY2VJdGVyYXRvci5uZXh0KCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBpZiAoIWN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCA9PT0gY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoKSB7XG4gICAgICAgICAgeWllbGQgY3VycmVudE1lc3NhZ2UgYXMgVWludDhBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcnVuY2F0ZWQgZXZlbnQgbWVzc2FnZSByZWNlaXZlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaHVua0xlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIGxldCBjdXJyZW50T2Zmc2V0ID0gMDtcblxuICAgICAgd2hpbGUgKGN1cnJlbnRPZmZzZXQgPCBjaHVua0xlbmd0aCkge1xuICAgICAgICAvLyBjcmVhdGUgbmV3IG1lc3NhZ2UgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghY3VycmVudE1lc3NhZ2UpIHtcbiAgICAgICAgICAvLyB3b3JraW5nIG9uIGEgbmV3IG1lc3NhZ2UsIGRldGVybWluZSB0b3RhbCBsZW5ndGhcbiAgICAgICAgICBjb25zdCBieXRlc1JlbWFpbmluZyA9IGNodW5rTGVuZ3RoIC0gY3VycmVudE9mZnNldDtcbiAgICAgICAgICAvLyBwcmV2ZW50IGVkZ2UgY2FzZSB3aGVyZSB0b3RhbCBsZW5ndGggc3BhbnMgMiBjaHVua3NcbiAgICAgICAgICBpZiAoIW1lc3NhZ2VMZW5ndGhCdWZmZXIpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VMZW5ndGhCdWZmZXIgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbnVtQnl0ZXNGb3JUb3RhbCA9IE1hdGgubWluKFxuICAgICAgICAgICAgNCAtIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCwgLy8gcmVtYWluaW5nIGJ5dGVzIHRvIGZpbGwgdGhlIG1lc3NhZ2VMZW5ndGhCdWZmZXJcbiAgICAgICAgICAgIGJ5dGVzUmVtYWluaW5nIC8vIGJ5dGVzIGxlZnQgaW4gY2h1bmtcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlci5zZXQoXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIGVycm9yIFRTMjUzMjogT2JqZWN0IGlzIHBvc3NpYmx5ICd1bmRlZmluZWQnIGZvciB2YWx1ZVxuICAgICAgICAgICAgdmFsdWUuc2xpY2UoY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldCArIG51bUJ5dGVzRm9yVG90YWwpLFxuICAgICAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCArPSBudW1CeXRlc0ZvclRvdGFsO1xuICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gbnVtQnl0ZXNGb3JUb3RhbDtcblxuICAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAvLyBub3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNyZWF0ZSB0aGUgY3VycmVudCBtZXNzYWdlXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgYWxsb2NhdGVNZXNzYWdlKG5ldyBEYXRhVmlldyhtZXNzYWdlTGVuZ3RoQnVmZmVyLmJ1ZmZlcikuZ2V0VWludDMyKDAsIGZhbHNlKSk7XG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3cml0ZSBkYXRhIGludG8gY3VycmVudCBtZXNzYWdlXG4gICAgICAgIGNvbnN0IG51bUJ5dGVzVG9Xcml0ZSA9IE1hdGgubWluKFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggLSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgsIC8vIG51bWJlciBvZiBieXRlcyBsZWZ0IHRvIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgICBjaHVua0xlbmd0aCAtIGN1cnJlbnRPZmZzZXQgLy8gbnVtYmVyIG9mIGJ5dGVzIGxlZnQgaW4gdGhlIG9yaWdpbmFsIGNodW5rXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRNZXNzYWdlIS5zZXQoXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZSBlcnJvciBUUzI1MzI6IE9iamVjdCBpcyBwb3NzaWJseSAndW5kZWZpbmVkJyBmb3IgdmFsdWVcbiAgICAgICAgICB2YWx1ZS5zbGljZShjdXJyZW50T2Zmc2V0LCBjdXJyZW50T2Zmc2V0ICsgbnVtQnl0ZXNUb1dyaXRlKSxcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoICs9IG51bUJ5dGVzVG9Xcml0ZTtcbiAgICAgICAgY3VycmVudE9mZnNldCArPSBudW1CeXRlc1RvV3JpdGU7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIHB1c2hlZFxuICAgICAgICBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCAmJiBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID09PSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgpIHtcbiAgICAgICAgICAvLyBwdXNoIG91dCB0aGUgbWVzc2FnZVxuICAgICAgICAgIHlpZWxkIGN1cnJlbnRNZXNzYWdlIGFzIFVpbnQ4QXJyYXk7XG4gICAgICAgICAgLy8gY2xlYW51cFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogaXRlcmF0b3IsXG4gIH07XG59XG4iXX0=","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nimport { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getUnmarshalledStream } from \"./getUnmarshalledStream\";\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var chunkedStream = getChunkedStream(body);\n var unmarshalledStream = getUnmarshalledStream(chunkedStream, {\n eventMarshaller: this.eventMarshaller,\n deserializer: deserializer,\n toUtf8: this.utfEncoder,\n });\n return unmarshalledStream;\n };\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var serializedIterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var input_1, input_1_1, chunk, payloadBuf, e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 7, 8, 13]);\n input_1 = __asyncValues(input);\n _b.label = 1;\n case 1: return [4 /*yield*/, __await(input_1.next())];\n case 2:\n if (!(input_1_1 = _b.sent(), !input_1_1.done)) return [3 /*break*/, 6];\n chunk = input_1_1.value;\n payloadBuf = self.eventMarshaller.marshall(serializer(chunk));\n return [4 /*yield*/, __await(payloadBuf)];\n case 3: return [4 /*yield*/, _b.sent()];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [3 /*break*/, 1];\n case 6: return [3 /*break*/, 13];\n case 7:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 13];\n case 8:\n _b.trys.push([8, , 11, 12]);\n if (!(input_1_1 && !input_1_1.done && (_a = input_1.return))) return [3 /*break*/, 10];\n return [4 /*yield*/, __await(_a.call(input_1))];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [3 /*break*/, 12];\n case 11:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 12: return [7 /*endfinally*/];\n case 13: return [4 /*yield*/, __await(new Uint8Array(0))];\n case 14: \n // Ending frame\n return [4 /*yield*/, _b.sent()];\n case 15:\n // Ending frame\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = serializedIterator,\n _a;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU2hFO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUErQixFQUMvQixZQUFpRTtRQUVqRSxJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsRUFBRTtZQUM5RCxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsWUFBWSxjQUFBO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ3hCLENBQUMsQ0FBQztRQUNILE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELHlDQUFTLEdBQVQsVUFBYSxLQUF1QixFQUFFLFVBQWlDOztRQUNyRSw0REFBNEQ7UUFDNUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQU0sa0JBQWtCLEdBQUc7Ozs7Ozs7OzRCQUNDLFVBQUEsY0FBQSxLQUFLLENBQUE7Ozs7OzRCQUFkLEtBQUssa0JBQUEsQ0FBQTs0QkFDZCxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7eURBQzlELFVBQVU7Z0NBQWhCLGdDQUFnQjs7NEJBQWhCLFNBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQUdiLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQzs7d0JBRHZCLGVBQWU7d0JBQ2YsZ0NBQXVCOzs0QkFEdkIsZUFBZTs0QkFDZixTQUF1QixDQUFDOzs7OztTQUN6QixDQUFDO1FBQ0Y7WUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUcsa0JBQWtCO2VBQzFDO0lBQ0osQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQXBDRCxJQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBFdmVudE1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tbWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGFzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgZ2V0Q2h1bmtlZFN0cmVhbSB9IGZyb20gXCIuL2dldENodW5rZWRTdHJlYW1cIjtcbmltcG9ydCB7IGdldFVubWFyc2hhbGxlZFN0cmVhbSB9IGZyb20gXCIuL2dldFVubWFyc2hhbGxlZFN0cmVhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlciBleHRlbmRzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zIHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xufVxuXG5leHBvcnQgY2xhc3MgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudE1hcnNoYWxsZXI6IEV2ZW50TWFyc2hhbGxlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1dGZFbmNvZGVyOiBFbmNvZGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51dGZFbmNvZGVyID0gdXRmOEVuY29kZXI7XG4gIH1cblxuICBkZXNlcmlhbGl6ZTxUPihcbiAgICBib2R5OiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGNodW5rZWRTdHJlYW0gPSBnZXRDaHVua2VkU3RyZWFtKGJvZHkpO1xuICAgIGNvbnN0IHVubWFyc2hhbGxlZFN0cmVhbSA9IGdldFVubWFyc2hhbGxlZFN0cmVhbShjaHVua2VkU3RyZWFtLCB7XG4gICAgICBldmVudE1hcnNoYWxsZXI6IHRoaXMuZXZlbnRNYXJzaGFsbGVyLFxuICAgICAgZGVzZXJpYWxpemVyLFxuICAgICAgdG9VdGY4OiB0aGlzLnV0ZkVuY29kZXIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVubWFyc2hhbGxlZFN0cmVhbTtcbiAgfVxuXG4gIHNlcmlhbGl6ZTxUPihpbnB1dDogQXN5bmNJdGVyYWJsZTxUPiwgc2VyaWFsaXplcjogKGV2ZW50OiBUKSA9PiBNZXNzYWdlKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2VyaWFsaXplZEl0ZXJhdG9yID0gYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGF5bG9hZEJ1ZiA9IHNlbGYuZXZlbnRNYXJzaGFsbGVyLm1hcnNoYWxsKHNlcmlhbGl6ZXIoY2h1bmspKTtcbiAgICAgICAgeWllbGQgcGF5bG9hZEJ1ZjtcbiAgICAgIH1cbiAgICAgIC8vIEVuZGluZyBmcmFtZVxuICAgICAgeWllbGQgbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogc2VyaWFsaXplZEl0ZXJhdG9yLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nexport function getUnmarshalledStream(source, options) {\n var _a;\n return _a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var source_1, source_1_1, chunk, message, messageType, unmodeledError, code, exception, deserializedException, error, event, deserialized, e_1_1;\n var _a, _b;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 12, 13, 18]);\n source_1 = __asyncValues(source);\n _d.label = 1;\n case 1: return [4 /*yield*/, __await(source_1.next())];\n case 2:\n if (!(source_1_1 = _d.sent(), !source_1_1.done)) return [3 /*break*/, 11];\n chunk = source_1_1.value;\n message = options.eventMarshaller.unmarshall(chunk);\n messageType = message.headers[\":message-type\"].value;\n if (!(messageType === \"error\")) return [3 /*break*/, 3];\n unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n case 3:\n if (!(messageType === \"exception\")) return [3 /*break*/, 5];\n code = message.headers[\":exception-type\"].value;\n exception = (_a = {}, _a[code] = message, _a);\n return [4 /*yield*/, __await(options.deserializer(exception))];\n case 4:\n deserializedException = _d.sent();\n if (deserializedException.$unknown) {\n error = new Error(options.toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n case 5:\n if (!(messageType === \"event\")) return [3 /*break*/, 9];\n event = (_b = {},\n _b[message.headers[\":event-type\"].value] = message,\n _b);\n return [4 /*yield*/, __await(options.deserializer(event))];\n case 6:\n deserialized = _d.sent();\n if (deserialized.$unknown)\n return [3 /*break*/, 10];\n return [4 /*yield*/, __await(deserialized)];\n case 7: return [4 /*yield*/, _d.sent()];\n case 8:\n _d.sent();\n return [3 /*break*/, 10];\n case 9: throw Error(\"Unrecognizable event type: \" + message.headers[\":event-type\"].value);\n case 10: return [3 /*break*/, 1];\n case 11: return [3 /*break*/, 18];\n case 12:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 18];\n case 13:\n _d.trys.push([13, , 16, 17]);\n if (!(source_1_1 && !source_1_1.done && (_c = source_1.return))) return [3 /*break*/, 15];\n return [4 /*yield*/, __await(_c.call(source_1))];\n case 14:\n _d.sent();\n _d.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 17: return [7 /*endfinally*/];\n case 18: return [2 /*return*/];\n }\n });\n });\n },\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VW5tYXJzaGFsbGVkU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldFVubWFyc2hhbGxlZFN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBU0EsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUFpQyxFQUNqQyxPQUFxQzs7SUFFckM7UUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUc7Ozs7Ozs7Ozs0QkFDSSxXQUFBLGNBQUEsTUFBTSxDQUFBOzs7Ozs0QkFBZixLQUFLLG1CQUFBLENBQUE7NEJBQ2QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUMzQyxXQUFXLEdBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBckMsQ0FBc0M7aUNBQzVELENBQUEsV0FBVyxLQUFLLE9BQU8sQ0FBQSxFQUF2Qix3QkFBdUI7NEJBRW5CLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBZ0IsSUFBSSxjQUFjLENBQUMsQ0FBQzs0QkFDeEcsY0FBYyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQWUsQ0FBQzs0QkFDckUsTUFBTSxjQUFjLENBQUM7O2lDQUNaLENBQUEsV0FBVyxLQUFLLFdBQVcsQ0FBQSxFQUEzQix3QkFBMkI7NEJBRTlCLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBZSxDQUFDOzRCQUMxRCxTQUFTLGFBQUssR0FBQyxJQUFJLElBQUcsT0FBTyxLQUFFLENBQUM7NEJBRVIsNkJBQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBQTs7NEJBQTdELHFCQUFxQixHQUFHLFNBQXFDOzRCQUNuRSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsRUFBRTtnQ0FFNUIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0NBQ3RELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dDQUNsQixNQUFNLEtBQUssQ0FBQzs2QkFDYjs0QkFDRCxNQUFNLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDOztpQ0FDekIsQ0FBQSxXQUFXLEtBQUssT0FBTyxDQUFBLEVBQXZCLHdCQUF1Qjs0QkFDMUIsS0FBSztnQ0FDVCxHQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBZSxJQUFHLE9BQU87bUNBQzFELENBQUM7NEJBQ21CLDZCQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUE7OzRCQUFoRCxZQUFZLEdBQUcsU0FBaUM7NEJBQ3RELElBQUksWUFBWSxDQUFDLFFBQVE7Z0NBQUUseUJBQVM7eURBQzlCLFlBQVk7Z0NBQWxCLGdDQUFrQjs7NEJBQWxCLFNBQWtCLENBQUM7O2dDQUVuQixNQUFNLEtBQUssQ0FBQyxnQ0FBOEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FHdkY7V0FDRDtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEVuY29kZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgVW5tYXJzaGFsbGVkU3RyZWFtT3B0aW9uczxUPiA9IHtcbiAgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtuYW1lOiBzdHJpbmddOiBNZXNzYWdlIH0pID0+IFByb21pc2U8VD47XG4gIHRvVXRmODogRW5jb2Rlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbm1hcnNoYWxsZWRTdHJlYW08VCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICBzb3VyY2U6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4sXG4gIG9wdGlvbnM6IFVubWFyc2hhbGxlZFN0cmVhbU9wdGlvbnM8VD5cbik6IEFzeW5jSXRlcmFibGU8VD4ge1xuICByZXR1cm4ge1xuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06IGFzeW5jIGZ1bmN0aW9uKiAoKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHNvdXJjZSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9ucy5ldmVudE1hcnNoYWxsZXIudW5tYXJzaGFsbChjaHVuayk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IG1lc3NhZ2VUeXBlIH0gPSBtZXNzYWdlLmhlYWRlcnNbXCI6bWVzc2FnZS10eXBlXCJdO1xuICAgICAgICBpZiAobWVzc2FnZVR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIC8vIFVubW9kZWxlZCBleGNlcHRpb24gaW4gZXZlbnRcbiAgICAgICAgICBjb25zdCB1bm1vZGVsZWRFcnJvciA9IG5ldyBFcnJvcigobWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLW1lc3NhZ2VcIl0udmFsdWUgYXMgc3RyaW5nKSB8fCBcIlVua25vd25FcnJvclwiKTtcbiAgICAgICAgICB1bm1vZGVsZWRFcnJvci5uYW1lID0gbWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLWNvZGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIHRocm93IHVubW9kZWxlZEVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgLy8gRm9yIG1vZGVsZWQgZXhjZXB0aW9uLCBwdXNoIGl0IHRvIGRlc2VyaWFsaXplciBhbmQgdGhyb3cgYWZ0ZXIgZGVzZXJpYWxpemluZ1xuICAgICAgICAgIGNvbnN0IGNvZGUgPSBtZXNzYWdlLmhlYWRlcnNbXCI6ZXhjZXB0aW9uLXR5cGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IHsgW2NvZGVdOiBtZXNzYWdlIH07XG4gICAgICAgICAgLy8gR2V0IHBhcnNlZCBleGNlcHRpb24gZXZlbnQgaW4ga2V5KGVycm9yIGNvZGUpIHZhbHVlKHN0cnVjdHVyZWQgZXJyb3IpIHBhaXIuXG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkRXhjZXB0aW9uID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXhjZXB0aW9uKTtcbiAgICAgICAgICBpZiAoZGVzZXJpYWxpemVkRXhjZXB0aW9uLiR1bmtub3duKSB7XG4gICAgICAgICAgICAvL3RoaXMgaXMgYW4gdW5tb2RlbGVkIGV4Y2VwdGlvbiB0aGVuIHRyeSBwYXJzaW5nIGl0IHdpdGggYmVzdCBlZmZvcnRcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG9wdGlvbnMudG9VdGY4KG1lc3NhZ2UuYm9keSkpO1xuICAgICAgICAgICAgZXJyb3IubmFtZSA9IGNvZGU7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZGVzZXJpYWxpemVkRXhjZXB0aW9uW2NvZGVdO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV2ZW50XCIpIHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgICAgIFttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZSBhcyBzdHJpbmddOiBtZXNzYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXZlbnQpO1xuICAgICAgICAgIGlmIChkZXNlcmlhbGl6ZWQuJHVua25vd24pIGNvbnRpbnVlO1xuICAgICAgICAgIHlpZWxkIGRlc2VyaWFsaXplZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemFibGUgZXZlbnQgdHlwZTogJHttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __asyncGenerator, __await, __awaiter, __generator } from \"tslib\";\n/**\n * A util function converting ReadableStream into an async iterable.\n * Reference: https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nexport var readableStreamtoIterable = function (readableStream) {\n var _a;\n return (_a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var reader, _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(reader.read())];\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [3 /*break*/, 5];\n return [4 /*yield*/, __await(void 0)];\n case 4: return [2 /*return*/, _b.sent()];\n case 5: return [4 /*yield*/, __await(value)];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n return [3 /*break*/, 2];\n case 8: return [3 /*break*/, 10];\n case 9:\n reader.releaseLock();\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n });\n },\n _a);\n};\n/**\n * A util function converting async iterable to a ReadableStream.\n */\nexport var iterableToReadableStream = function (asyncIterable) {\n var iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n pull: function (controller) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, iterator.next()];\n case 1:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n return [2 /*return*/, controller.close()];\n }\n controller.enqueue(value);\n return [2 /*return*/];\n }\n });\n });\n },\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksY0FBaUM7O0lBQXVCLE9BQUE7UUFDbEcsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHOzs7Ozs7NEJBQ2hCLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Ozs7OztpQ0FFakMsSUFBSTs0QkFDZSw2QkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUE7OzRCQUFyQyxLQUFrQixTQUFtQixFQUFuQyxJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7aUNBQ2YsSUFBSSxFQUFKLHdCQUFJOztnQ0FBRSxpQ0FBTzs2REFDWCxLQUFVO2dDQUFoQixnQ0FBZ0I7OzRCQUFoQixTQUFnQixDQUFDOzs7OzRCQUduQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7OztTQUV4QjtXQUNEO0FBYmtHLENBYWxHLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksYUFBK0I7SUFDekUsSUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDbEIsSUFBSSxZQUFDLFVBQVU7Ozs7O2dDQUNLLHFCQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7NEJBQXZDLEtBQWtCLFNBQXFCLEVBQXJDLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTs0QkFDbkIsSUFBSSxJQUFJLEVBQUU7Z0NBQ1Isc0JBQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFDOzZCQUMzQjs0QkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7OztTQUMzQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgUmVhZGFibGVTdHJlYW0gaW50byBhbiBhc3luYyBpdGVyYWJsZS5cbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9qYWtlYXJjaGliYWxkLmNvbS8yMDE3L2FzeW5jLWl0ZXJhdG9ycy1hbmQtZ2VuZXJhdG9ycy8jbWFraW5nLXN0cmVhbXMtaXRlcmF0ZVxuICovXG5leHBvcnQgY29uc3QgcmVhZGFibGVTdHJlYW10b0l0ZXJhYmxlID0gPFQ+KHJlYWRhYmxlU3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxUPik6IEFzeW5jSXRlcmFibGU8VD4gPT4gKHtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCByZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICB0cnkge1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgICAgeWllbGQgdmFsdWUgYXMgVDtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7XG4gICAgfVxuICB9LFxufSk7XG5cbi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgYXN5bmMgaXRlcmFibGUgdG8gYSBSZWFkYWJsZVN0cmVhbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbSA9IDxUPihhc3luY0l0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+KTogUmVhZGFibGVTdHJlYW08VD4gPT4ge1xuICBjb25zdCBpdGVyYXRvciA9IGFzeW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgfSk7XG59O1xuIl19","import { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@aws-sdk/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\n/**\n * Utility class used to serialize and deserialize event streams in\n * browsers and ReactNative.\n *\n * In browsers where ReadableStream API is available:\n * * deserialize from ReadableStream to an async iterable of output structure\n * * serialize from async iterable of input structure to ReadableStream\n * In ReactNative where only async iterable API is available:\n * * deserialize from async iterable of binaries to async iterable of output structure\n * * serialize from async iterable of input structure to async iterable of binaries\n *\n * We use ReadableStream API in browsers because of the consistency with other\n * streaming operations, where ReadableStream API is used to denote streaming data.\n * Whereas in ReactNative, ReadableStream API is not available, we use async iterable\n * for streaming data although it has lower throughput.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder: utf8Decoder,\n utf8Encoder: utf8Encoder,\n });\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n };\n /**\n * Generate a stream that serialize events into stream of binary chunks;\n *\n * Caveat is that streaming request payload doesn't work on browser with native\n * xhr or fetch handler currently because they don't support upload streaming.\n * reference:\n * * https://bugs.chromium.org/p/chromium/issues/detail?id=688906\n * * https://bugzilla.mozilla.org/show_bug.cgi?id=1387483\n *\n */\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\nvar isReadableStream = function (body) {\n return typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixJQUFJLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksOEJBQThCLENBQUM7WUFDNUQsV0FBVyxhQUFBO1lBQ1gsV0FBVyxhQUFBO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUE0RCxFQUM1RCxZQUFpRTtRQUVqRSxJQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx5Q0FBUyxHQUFULFVBQWEsS0FBdUIsRUFBRSxVQUFpQztRQUNyRSxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNsSCxDQUFDO0lBQ0gsNEJBQUM7QUFBRCxDQUFDLEFBakNELElBaUNDOztBQUVELElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxJQUFTO0lBQ2pDLE9BQUEsT0FBTyxjQUFjLEtBQUssVUFBVSxJQUFJLElBQUksWUFBWSxjQUFjO0FBQXRFLENBQXNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBVbml2ZXJzYWxFdmVudFN0cmVhbU1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tc2VyZGUtdW5pdmVyc2FsXCI7XG5pbXBvcnQgeyBEZWNvZGVyLCBFbmNvZGVyLCBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciwgTWVzc2FnZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBpdGVyYWJsZVRvUmVhZGFibGVTdHJlYW0sIHJlYWRhYmxlU3RyZWFtdG9JdGVyYWJsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGV4dGVuZHMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlck9wdGlvbnMge1xuICB1dGY4RW5jb2RlcjogRW5jb2RlcjtcbiAgdXRmOERlY29kZXI6IERlY29kZXI7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyB1c2VkIHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgZXZlbnQgc3RyZWFtcyBpblxuICogYnJvd3NlcnMgYW5kIFJlYWN0TmF0aXZlLlxuICpcbiAqIEluIGJyb3dzZXJzIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBhdmFpbGFibGU6XG4gKiAqIGRlc2VyaWFsaXplIGZyb20gUmVhZGFibGVTdHJlYW0gdG8gYW4gYXN5bmMgaXRlcmFibGUgb2Ygb3V0cHV0IHN0cnVjdHVyZVxuICogKiBzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBpbnB1dCBzdHJ1Y3R1cmUgdG8gUmVhZGFibGVTdHJlYW1cbiAqIEluIFJlYWN0TmF0aXZlIHdoZXJlIG9ubHkgYXN5bmMgaXRlcmFibGUgQVBJIGlzIGF2YWlsYWJsZTpcbiAqICogZGVzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllcyB0byBhc3luYyBpdGVyYWJsZSBvZiBvdXRwdXQgc3RydWN0dXJlXG4gKiAqIHNlcmlhbGl6ZSBmcm9tIGFzeW5jIGl0ZXJhYmxlIG9mIGlucHV0IHN0cnVjdHVyZSB0byBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllc1xuICpcbiAqIFdlIHVzZSBSZWFkYWJsZVN0cmVhbSBBUEkgaW4gYnJvd3NlcnMgYmVjYXVzZSBvZiB0aGUgY29uc2lzdGVuY3kgd2l0aCBvdGhlclxuICogc3RyZWFtaW5nIG9wZXJhdGlvbnMsIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyB1c2VkIHRvIGRlbm90ZSBzdHJlYW1pbmcgZGF0YS5cbiAqIFdoZXJlYXMgaW4gUmVhY3ROYXRpdmUsIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBub3QgYXZhaWxhYmxlLCB3ZSB1c2UgYXN5bmMgaXRlcmFibGVcbiAqIGZvciBzdHJlYW1pbmcgZGF0YSBhbHRob3VnaCBpdCBoYXMgbG93ZXIgdGhyb3VnaHB1dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsTWFyc2hhbGxlcjogVW5pdmVyc2FsRXZlbnRTdHJlYW1NYXJzaGFsbGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51bml2ZXJzYWxNYXJzaGFsbGVyID0gbmV3IFVuaXZlcnNhbEV2ZW50U3RyZWFtTWFyc2hhbGxlcih7XG4gICAgICB1dGY4RGVjb2RlcixcbiAgICAgIHV0ZjhFbmNvZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgZGVzZXJpYWxpemU8VD4oXG4gICAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4gfCBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGJvZHlJdGVyYWJsZSA9IGlzUmVhZGFibGVTdHJlYW0oYm9keSkgPyByZWFkYWJsZVN0cmVhbXRvSXRlcmFibGUoYm9keSkgOiBib2R5O1xuICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbE1hcnNoYWxsZXIuZGVzZXJpYWxpemUoYm9keUl0ZXJhYmxlLCBkZXNlcmlhbGl6ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgc3RyZWFtIHRoYXQgc2VyaWFsaXplIGV2ZW50cyBpbnRvIHN0cmVhbSBvZiBiaW5hcnkgY2h1bmtzO1xuICAgKlxuICAgKiBDYXZlYXQgaXMgdGhhdCBzdHJlYW1pbmcgcmVxdWVzdCBwYXlsb2FkIGRvZXNuJ3Qgd29yayBvbiBicm93c2VyIHdpdGggbmF0aXZlXG4gICAqIHhociBvciBmZXRjaCBoYW5kbGVyIGN1cnJlbnRseSBiZWNhdXNlIHRoZXkgZG9uJ3Qgc3VwcG9ydCB1cGxvYWQgc3RyZWFtaW5nLlxuICAgKiByZWZlcmVuY2U6XG4gICAqICogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9Njg4OTA2XG4gICAqICogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQ4M1xuICAgKlxuICAgKi9cbiAgc2VyaWFsaXplPFQ+KGlucHV0OiBBc3luY0l0ZXJhYmxlPFQ+LCBzZXJpYWxpemVyOiAoZXZlbnQ6IFQpID0+IE1lc3NhZ2UpOiBSZWFkYWJsZVN0cmVhbSB8IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHNlcmlhbHppZWRJdGVyYWJsZSA9IHRoaXMudW5pdmVyc2FsTWFyc2hhbGxlci5zZXJpYWxpemUoaW5wdXQsIHNlcmlhbGl6ZXIpO1xuICAgIHJldHVybiB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiA/IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbShzZXJpYWx6aWVkSXRlcmFibGUpIDogc2VyaWFsemllZEl0ZXJhYmxlO1xuICB9XG59XG5cbmNvbnN0IGlzUmVhZGFibGVTdHJlYW0gPSAoYm9keTogYW55KTogYm9keSBpcyBSZWFkYWJsZVN0cmVhbSA9PlxuICB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiAmJiBib2R5IGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW07XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzNCLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzVDLElBQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNyQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMvQjtBQUVELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBRTFCLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QixJQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsSUFBTSxjQUFjLEdBQUcsRUFBUSxDQUFDO0FBRWhDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYTtJQUN0QyxJQUFJLGVBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QixlQUFlLElBQUksQ0FBQyxDQUFDO0tBQ3RCO1NBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQ25DLGVBQWUsRUFBRSxDQUFDO0tBQ25CO0lBQ0QsSUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsSUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RSxTQUFTLElBQUksYUFBYSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLElBQUksS0FBSyxhQUFhLENBQUM7YUFDeEI7U0FDRjtRQUVELElBQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDbEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDeEU7S0FDRjtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBaUI7SUFDeEMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELFNBQVMsSUFBSSxXQUFXLENBQUM7U0FDMUI7UUFFRCxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLEtBQUssZUFBZSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFNLE1BQU0sR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7WUFDckQsR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztLQUMzQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = /** @class */ (function () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a, requestTimeout = _b.requestTimeout;\n this.requestTimeout = requestTimeout;\n }\n FetchHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n var requestTimeoutInMs = this.requestTimeout;\n // if the request was already aborted, prevent doing extra work\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port, method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n var body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZldGNoLWh0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFlbkQ7SUFHRSwwQkFBWSxFQUFnRDtZQUFoRCxxQkFBOEMsRUFBRSxLQUFBLEVBQTlDLGNBQWMsb0JBQUE7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGtDQUFPLEdBQVA7UUFDRSwyRUFBMkU7SUFDN0UsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBTyxPQUFvQixFQUFFLEVBQXdDO1lBQXhDLHFCQUFzQyxFQUFFLEtBQUEsRUFBdEMsV0FBVyxpQkFBQTtRQUN4QyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFL0MsK0RBQStEO1FBQy9ELElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sRUFBRTtZQUN4QixJQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLElB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Q0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBM0ZELElBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyByZXF1ZXN0VGltZW91dCB9IGZyb20gXCIuL3JlcXVlc3QtdGltZW91dFwiO1xuXG5kZWNsYXJlIGxldCBBYm9ydENvbnRyb2xsZXI6IGFueTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBodHRwIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGEgYnJvd3NlciBodHRwIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGJlaW5nIGF1dG9tYXRpY2FsbHlcbiAgICogdGVybWluYXRlZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgRmV0Y2hIdHRwSGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IHJlcXVlc3RUaW1lb3V0IH06IEZldGNoSHR0cEhhbmRsZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnJlcXVlc3RUaW1lb3V0ID0gcmVxdWVzdFRpbWVvdXQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuIFRMUyBhbmQgSFRUUC8yIGNvbm5lY3Rpb24gcG9vbGluZyBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyLlxuICB9XG5cbiAgaGFuZGxlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCB7IGFib3J0U2lnbmFsIH06IEh0dHBIYW5kbGVyT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UgfT4ge1xuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SW5NcyA9IHRoaXMucmVxdWVzdFRpbWVvdXQ7XG5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdCB3YXMgYWxyZWFkeSBhYm9ydGVkLCBwcmV2ZW50IGRvaW5nIGV4dHJhIHdvcmtcbiAgICBpZiAoYWJvcnRTaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHJlcXVlc3QucGF0aDtcbiAgICBpZiAocmVxdWVzdC5xdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKHJlcXVlc3QucXVlcnkpO1xuICAgICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICAgIHBhdGggKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3J0LCBtZXRob2QgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXJsID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogXCJcIn0ke3BhdGh9YDtcbiAgICAvLyBSZXF1ZXN0IGNvbnN0cnVjdG9yIGRvZXNuJ3QgYWxsb3cgR0VUL0hFQUQgcmVxdWVzdCB3aXRoIGJvZHlcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzU1MVxuICAgIGNvbnN0IGJvZHkgPSBtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiA/IHVuZGVmaW5lZCA6IHJlcXVlc3QuYm9keTtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgIH07XG5cbiAgICAvLyBzb21lIGJyb3dzZXJzIHN1cHBvcnQgYWJvcnQgc2lnbmFsXG4gICAgaWYgKHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIChyZXF1ZXN0T3B0aW9ucyBhcyBhbnkpW1wic2lnbmFsXCJdID0gYWJvcnRTaWduYWw7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgY29uc3QgcmFjZU9mUHJvbWlzZXMgPSBbXG4gICAgICBmZXRjaChmZXRjaFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoSGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRIZWFkZXJzOiBIZWFkZXJCYWcgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgPEFycmF5PHN0cmluZ1tdPj5mZXRjaEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgdHJhbnNmb3JtZWRIZWFkZXJzW3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc1JlYWRhYmxlU3RyZWFtID0gcmVzcG9uc2UuYm9keSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBidWZmZXJlZCBib2R5XG4gICAgICAgIGlmICghaGFzUmVhZGFibGVTdHJlYW0pIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oKGJvZHkpID0+ICh7XG4gICAgICAgICAgICByZXNwb25zZTogbmV3IEh0dHBSZXNwb25zZSh7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBzdHJlYW1pbmcgYm9keVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHJlcXVlc3RUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SW5NcyksXG4gICAgXTtcbiAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgIHJhY2VPZlByb21pc2VzLnB1c2goXG4gICAgICAgIG5ldyBQcm9taXNlPG5ldmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgYWJvcnRTaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgICAgICAgIHJlamVjdChhYm9ydEVycm9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmFjZShyYWNlT2ZQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(key + \"=\" + escapeUri(value[i]));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBd0I7O0lBQ3ZELElBQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQzs7UUFDM0IsS0FBZ0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUF0QyxJQUFJLEdBQUcsV0FBQTtZQUNWLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBSSxHQUFHLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNsQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE9BQU8sSUFBSSxNQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5U3RyaW5nKHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICBrZXkgPSBlc2NhcGVVcmkoa2V5KTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYCR7a2V5fT0ke2VzY2FwZVVyaSh2YWx1ZVtpXSl9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxc0VudHJ5ID0ga2V5O1xuICAgICAgaWYgKHZhbHVlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBxc0VudHJ5ICs9IGA9JHtlc2NhcGVVcmkodmFsdWUpfWA7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHFzRW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQWU7SUFBZiw0QkFBQSxFQUFBLGVBQWU7SUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsVUFBVSxDQUFDO2dCQUNULElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLHFDQUFtQyxXQUFXLFFBQUssQ0FBQyxDQUFDO2dCQUNwRixZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0VGltZW91dCh0aW1lb3V0SW5NcyA9IDApOiBQcm9taXNlPG5ldmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKHRpbWVvdXRJbk1zKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZW91dEVycm9yID0gbmV3IEVycm9yKGBSZXF1ZXN0IGRpZCBub3QgY29tcGxldGUgd2l0aGluICR7dGltZW91dEluTXN9IG1zYCk7XG4gICAgICAgIHRpbWVvdXRFcnJvci5uYW1lID0gXCJUaW1lb3V0RXJyb3JcIjtcbiAgICAgICAgcmVqZWN0KHRpbWVvdXRFcnJvcik7XG4gICAgICB9LCB0aW1lb3V0SW5Ncyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\n//reference: https://snack.expo.io/r1JCSWRGU\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2 /*return*/, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3 /*break*/, 3];\n return [4 /*yield*/, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n // reader.readAsArrayBuffer is not always available\n reader.readAsDataURL(blob);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBb0IsVUFBQyxNQUE2QjtJQUM1RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxNQUFNLFlBQVksSUFBSSxFQUFFO1FBQ3hELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLFNBQWUsV0FBVyxDQUFDLElBQVU7Ozs7O3dCQUNwQixxQkFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUE7O29CQUFqQyxNQUFNLEdBQUcsU0FBd0I7b0JBQ2pDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLHNCQUFPLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDOzs7O0NBQ3BDO0FBRUQsU0FBZSxhQUFhLENBQUMsTUFBc0I7Ozs7OztvQkFDN0MsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM5QixNQUFNLEdBQUcsS0FBSyxDQUFDOzs7eUJBQ1osQ0FBQyxNQUFNO29CQUNZLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXJDLEtBQWtCLFNBQW1CLEVBQW5DLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTtvQkFDbkIsSUFBSSxLQUFLLEVBQUU7d0JBQ0gsS0FBSyxHQUFHLEdBQUcsQ0FBQzt3QkFDbEIsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDOUI7b0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQzs7d0JBRWhCLHNCQUFPLEdBQUcsRUFBQzs7OztDQUNaO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxHQUFHOztZQUNqQix1RkFBdUY7WUFDdkYsMEVBQTBFO1lBQzFFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQU0sTUFBTSxHQUFHLE9BQUMsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFXLENBQUM7WUFDL0Msc0ZBQXNGO1lBQ3RGLHlDQUF5QztZQUN6QyxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwRSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLENBQUM7UUFDNUMsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYmFzZTY0LWJyb3dzZXJcIjtcblxuLy9yZWZlcmVuY2U6IGh0dHBzOi8vc25hY2suZXhwby5pby9yMUpDU1dSR1VcbmV4cG9ydCBjb25zdCBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvciA9IChzdHJlYW06IEJsb2IgfCBSZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBpZiAodHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJiBzdHJlYW0gaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RCbG9iKHN0cmVhbSk7XG4gIH1cblxuICByZXR1cm4gY29sbGVjdFN0cmVhbShzdHJlYW0gYXMgUmVhZGFibGVTdHJlYW0pO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdEJsb2IoYmxvYjogQmxvYik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBiYXNlNjQgPSBhd2FpdCByZWFkVG9CYXNlNjQoYmxvYik7XG4gIGNvbnN0IGFycmF5QnVmZmVyID0gZnJvbUJhc2U2NChiYXNlNjQpO1xuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U3RyZWFtKHN0cmVhbTogUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgbGV0IHJlcyA9IG5ldyBVaW50OEFycmF5KDApO1xuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIGxldCBpc0RvbmUgPSBmYWxzZTtcbiAgd2hpbGUgKCFpc0RvbmUpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJpb3IgPSByZXM7XG4gICAgICByZXMgPSBuZXcgVWludDhBcnJheShwcmlvci5sZW5ndGggKyB2YWx1ZS5sZW5ndGgpO1xuICAgICAgcmVzLnNldChwcmlvcik7XG4gICAgICByZXMuc2V0KHZhbHVlLCBwcmlvci5sZW5ndGgpO1xuICAgIH1cbiAgICBpc0RvbmUgPSBkb25lO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAvLyByZWZlcmVuY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlUmVhZGVyL3JlYWRBc0RhdGFVUkxcbiAgICAgIC8vIHJlc3BvbnNlIGZyb20gcmVhZEFzRGF0YVVSTCBpcyBhbHdheXMgcHJlcGVuZGVkIHdpdGggXCJkYXRhOiovKjtiYXNlNjQsXCJcbiAgICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWRlciBhYm9ydGVkIHRvbyBlYXJseVwiKSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSAocmVhZGVyLnJlc3VsdCA/PyBcIlwiKSBhcyBzdHJpbmc7XG4gICAgICAvLyBSZXNwb25zZSBjYW4gaW5jbHVkZSBvbmx5ICdkYXRhOicgZm9yIGVtcHR5IGJsb2IsIHJldHVybiBlbXB0eSBzdHJpbmcgaW4gdGhpcyBjYXNlLlxuICAgICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHN0cmluZyBhZnRlciAnLCdcbiAgICAgIGNvbnN0IGNvbW1hSW5kZXggPSByZXN1bHQuaW5kZXhPZihcIixcIik7XG4gICAgICBjb25zdCBkYXRhT2Zmc2V0ID0gY29tbWFJbmRleCA+IC0xID8gY29tbWFJbmRleCArIDEgOiByZXN1bHQubGVuZ3RoO1xuICAgICAgcmVzb2x2ZShyZXN1bHQuc3Vic3RyaW5nKGRhdGFPZmZzZXQpKTtcbiAgICB9O1xuICAgIHJlYWRlci5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWQgYWJvcnRlZFwiKSk7XG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICAvLyByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIgaXMgbm90IGFsd2F5cyBhdmFpbGFibGVcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgfSk7XG59XG4iXX0=","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludmFsaWRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQXVDLFVBQUMsT0FBZSxJQUFLLE9BQUEsY0FBTSxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQXZCLENBQXVCLEVBQTdCLENBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IGNvbnN0IGludmFsaWRQcm92aWRlcjogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvdmlkZXI8YW55PiA9IChtZXNzYWdlOiBzdHJpbmcpID0+ICgpID0+IFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nexport var retryMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n if ((_a = options === null || options === void 0 ? void 0 : options.retryStrategy) === null || _a === void 0 ? void 0 : _a.mode)\n context.userAgent = __spread((context.userAgent || []), [[\"cfg/retry-mode\", options.retryStrategy.mode]]);\n return [2 /*return*/, options.retryStrategy.retry(next, args)];\n });\n}); }; }; };\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBYUEsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBNEIsSUFBSyxPQUFBLFVBQy9ELElBQWtDLEVBQ2xDLE9BQWdDLElBQ0MsT0FBQSxVQUNqQyxJQUFtQzs7O1FBRW5DLFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsMENBQUUsSUFBSTtZQUM5QixPQUFPLENBQUMsU0FBUyxZQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUNyRyxzQkFBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUM7O0tBQ2hELEVBTmtDLENBTWxDLEVBVGdFLENBU2hFLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBcUQ7SUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDZixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQTRCLElBQTBCLE9BQUEsQ0FBQztJQUNwRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsRUFKbUYsQ0FJbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFJldHJ5UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgY29uc3QgcmV0cnlNaWRkbGV3YXJlID0gKG9wdGlvbnM6IFJldHJ5UmVzb2x2ZWRDb25maWcpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogRmluYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEZpbmFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxGaW5hbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBpZiAob3B0aW9ucz8ucmV0cnlTdHJhdGVneT8ubW9kZSlcbiAgICBjb250ZXh0LnVzZXJBZ2VudCA9IFsuLi4oY29udGV4dC51c2VyQWdlbnQgfHwgW10pLCBbXCJjZmcvcmV0cnktbW9kZVwiLCBvcHRpb25zLnJldHJ5U3RyYXRlZ3kubW9kZV1dO1xuICByZXR1cm4gb3B0aW9ucy5yZXRyeVN0cmF0ZWd5LnJldHJ5KG5leHQsIGFyZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldHJ5TWlkZGxld2FyZU9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJyZXRyeU1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiUkVUUllcIl0sXG4gIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gIHByaW9yaXR5OiBcImhpZ2hcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmV0cnlQbHVnaW4gPSAob3B0aW9uczogUmV0cnlSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQocmV0cnlNaWRkbGV3YXJlKG9wdGlvbnMpLCByZXRyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/**\n * Errors encountered when the client clock and server clock cannot agree on the\n * current time.\n *\n * These errors are retryable, assuming the SDK has enabled clock skew\n * correction.\n */\nexport var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRztJQUNwQyxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtDQUN4QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHO0lBQ3BDLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3Q0FBd0M7SUFDeEMsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQiwyQkFBMkI7SUFDM0IsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQixnQ0FBZ0M7Q0FDakMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFakg7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFcnJvcnMgZW5jb3VudGVyZWQgd2hlbiB0aGUgY2xpZW50IGNsb2NrIGFuZCBzZXJ2ZXIgY2xvY2sgY2Fubm90IGFncmVlIG9uIHRoZVxuICogY3VycmVudCB0aW1lLlxuICpcbiAqIFRoZXNlIGVycm9ycyBhcmUgcmV0cnlhYmxlLCBhc3N1bWluZyB0aGUgU0RLIGhhcyBlbmFibGVkIGNsb2NrIHNrZXdcbiAqIGNvcnJlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9DS19TS0VXX0VSUk9SX0NPREVTID0gW1xuICBcIkF1dGhGYWlsdXJlXCIsXG4gIFwiSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvblwiLFxuICBcIlJlcXVlc3RFeHBpcmVkXCIsXG4gIFwiUmVxdWVzdEluVGhlRnV0dXJlXCIsXG4gIFwiUmVxdWVzdFRpbWVUb29Ta2V3ZWRcIixcbiAgXCJTaWduYXR1cmVEb2VzTm90TWF0Y2hcIixcbl07XG5cbi8qKlxuICogRXJyb3JzIHRoYXQgaW5kaWNhdGUgdGhlIFNESyBpcyBiZWluZyB0aHJvdHRsZWQuXG4gKlxuICogVGhlc2UgZXJyb3JzIGFyZSBhbHdheXMgcmV0cnlhYmxlLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19FUlJPUl9DT0RFUyA9IFtcbiAgXCJCYW5kd2lkdGhMaW1pdEV4Y2VlZGVkXCIsXG4gIFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlByaW9yUmVxdWVzdE5vdENvbXBsZXRlXCIsXG4gIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICBcIlJlcXVlc3RUaHJvdHRsZWRcIixcbiAgXCJSZXF1ZXN0VGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiU2xvd0Rvd25cIixcbiAgXCJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgXCJUaHJvdHRsaW5nXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiLFxuICBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiLCAvLyBEeW5hbW9EQlxuXTtcblxuLyoqXG4gKiBFcnJvciBjb2RlcyB0aGF0IGluZGljYXRlIHRyYW5zaWVudCBpc3N1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFRSQU5TSUVOVF9FUlJPUl9DT0RFUyA9IFtcIkFib3J0RXJyb3JcIiwgXCJUaW1lb3V0RXJyb3JcIiwgXCJSZXF1ZXN0VGltZW91dFwiLCBcIlJlcXVlc3RUaW1lb3V0RXhjZXB0aW9uXCJdO1xuXG4vKipcbiAqIEVycm9yIGNvZGVzIHRoYXQgaW5kaWNhdGUgdHJhbnNpZW50IGlzc3Vlc1xuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUyA9IFs1MDAsIDUwMiwgNTAzLCA1MDRdO1xuIl19","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUE5QixDQUE4QixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZSxJQUFLLE9BQUEsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQztBQUVqRyxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLEtBQWU7O0lBQy9DLE9BQUEsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLE1BQUssR0FBRztRQUN2QyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMzQyxPQUFBLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUE7Q0FBQSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZTs7SUFDOUMsT0FBQSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLEtBQUksQ0FBQyxDQUFDLENBQUE7Q0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5pbXBvcnQge1xuICBDTE9DS19TS0VXX0VSUk9SX0NPREVTLFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLFxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMsXG4gIFRSQU5TSUVOVF9FUlJPUl9TVEFUVVNfQ09ERVMsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgY29uc3QgaXNSZXRyeWFibGVCeVRyYWl0ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gZXJyb3IuJHJldHJ5YWJsZSAhPT0gdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+IENMT0NLX1NLRVdfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rocm90dGxpbmdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+XG4gIGVycm9yLiRtZXRhZGF0YT8uaHR0cFN0YXR1c0NvZGUgPT09IDQyOSB8fFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLm5hbWUpIHx8XG4gIGVycm9yLiRyZXRyeWFibGU/LnRocm90dGxpbmcgPT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNpZW50RXJyb3IgPSAoZXJyb3I6IFNka0Vycm9yKSA9PlxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSkgfHxcbiAgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhlcnJvci4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlIHx8IDApO1xuIl19","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGF5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsUUFBZ0I7SUFDckUsT0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQUEsQ0FBQyxFQUFJLFFBQVEsQ0FBQSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQXBGLENBQW9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhJTVVNX1JFVFJZX0RFTEFZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQ2FsY3VsYXRlIGEgY2FwcGVkLCBmdWxseS1qaXR0ZXJlZCBleHBvbmVudGlhbCBiYWNrb2ZmIHRpbWUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGVsYXlEZWNpZGVyID0gKGRlbGF5QmFzZTogbnVtYmVyLCBhdHRlbXB0czogbnVtYmVyKSA9PlxuICBNYXRoLmZsb29yKE1hdGgubWluKE1BWElNVU1fUkVUUllfREVMQVksIE1hdGgucmFuZG9tKCkgKiAyICoqIGF0dGVtcHRzICogZGVsYXlCYXNlKSk7XG4iXX0=","/**\n * The base number of milliseconds to use in calculating a suitable cool-down\n * time when a retryable error is encountered.\n */\nexport var DEFAULT_RETRY_DELAY_BASE = 100;\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\nexport var RETRY_COST = 5;\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\nexport var TIMEOUT_RETRY_COST = 10;\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gY2FsY3VsYXRpbmcgYSBzdWl0YWJsZSBjb29sLWRvd25cbiAqIHRpbWUgd2hlbiBhIHJldHJ5YWJsZSBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSA9IDEwMDtcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIGRlbGF5XG4gKiBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICovXG5leHBvcnQgY29uc3QgTUFYSU1VTV9SRVRSWV9ERUxBWSA9IDIwICogMTAwMDtcblxuLyoqXG4gKiBUaGUgcmV0cnkgZGVsYXkgYmFzZSAoaW4gbWlsbGlzZWNvbmRzKSB0byB1c2Ugd2hlbiBhIHRocm90dGxpbmcgZXJyb3IgaXNcbiAqIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19SRVRSWV9ERUxBWV9CQVNFID0gNTAwO1xuXG4vKipcbiAqIEluaXRpYWwgbnVtYmVyIG9mIHJldHJ5IHRva2VucyBpbiBSZXRyeSBRdW90YVxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9SRVRSWV9UT0tFTlMgPSA1MDA7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlLlxuICovXG5leHBvcnQgY29uc3QgUkVUUllfQ09TVCA9IDU7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiB3aGVuIGEgdGhyb3R0bGluZyBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJTUVPVVRfUkVUUllfQ09TVCA9IDEwO1xuXG4vKipcbiAqIFRoZSB0b3RhbCBhbW91bnQgb2YgcmV0cnkgdG9rZW4gdG8gYmUgaW5jcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiBpZiBhbiBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gc3VjY2VlZHMgd2l0aG91dCByZXF1aXJpbmcgYSByZXRyeSByZXF1ZXN0LlxuICovXG5leHBvcnQgY29uc3QgTk9fUkVUUllfSU5DUkVNRU5UID0gMTtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgU0RLIGludm9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IElOVk9DQVRJT05fSURfSEVBREVSID0gXCJhbXotc2RrLWludm9jYXRpb24taWRcIjtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgcmVxdWVzdCByZXRyeSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVFU1RfSEVBREVSID0gXCJhbXotc2RrLXJlcXVlc3RcIjtcbiJdfQ==","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sdUNBQXVDLENBQUM7QUFHL0MsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxLQUFlO0lBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0Nsb2NrU2tld0Vycm9yLFxuICBpc1JldHJ5YWJsZUJ5VHJhaXQsXG4gIGlzVGhyb3R0bGluZ0Vycm9yLFxuICBpc1RyYW5zaWVudEVycm9yLFxufSBmcm9tIFwiQGF3cy1zZGsvc2VydmljZS1lcnJvci1jbGFzc2lmaWNhdGlvblwiO1xuaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJldHJ5RGVjaWRlciA9IChlcnJvcjogU2RrRXJyb3IpID0+IHtcbiAgaWYgKCFlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc1JldHJ5YWJsZUJ5VHJhaXQoZXJyb3IpIHx8IGlzQ2xvY2tTa2V3RXJyb3IoZXJyb3IpIHx8IGlzVGhyb3R0bGluZ0Vycm9yKGVycm9yKSB8fCBpc1RyYW5zaWVudEVycm9yKGVycm9yKTtcbn07XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\nexport var DEFAULT_RETRY_MODE = \"standard\";\nvar StandardRetryStrategy = /** @class */ (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = DEFAULT_RETRY_MODE;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4 /*yield*/, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _a, response, output, err_1, delay_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 5]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n return [4 /*yield*/, next(args)];\n case 1:\n _a = _b.sent(), response = _a.response, output = _a.output;\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2 /*return*/, { value: { response: response, output: output } }];\n case 2:\n err_1 = _b.sent();\n attempts++;\n if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3 /*break*/, 4];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err_1);\n delay_1 = this_1.delayDecider(isThrottlingError(err_1) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay_1;\n return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 3:\n _b.sent();\n return [2 /*return*/, \"continue\"];\n case 4:\n if (!err_1.$metadata) {\n err_1.$metadata = {};\n }\n err_1.$metadata.attempts = attempts;\n err_1.$metadata.totalRetryDelay = totalDelay;\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 4];\n return [5 /*yield**/, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 2];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRTdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBb0Q3QztJQU1FLCtCQUE2QixtQkFBcUMsRUFBRSxPQUFzQzs7UUFBN0Usd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFrQjtRQUZsRCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFHeEMsSUFBSSxDQUFDLFlBQVksU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxtQ0FBSSxtQkFBbUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLG1DQUFJLG1CQUFtQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLFNBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxD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IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGlzVGhyb3R0bGluZ0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NlcnZpY2UtZXJyb3ItY2xhc3NpZmljYXRpb25cIjtcbmltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IEZpbmFsaXplSGFuZGxlciwgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLCBNZXRhZGF0YUJlYXJlciwgUHJvdmlkZXIsIFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHY0IH0gZnJvbSBcInV1aWRcIjtcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9SRVRSWV9ERUxBWV9CQVNFLFxuICBJTklUSUFMX1JFVFJZX1RPS0VOUyxcbiAgSU5WT0NBVElPTl9JRF9IRUFERVIsXG4gIFJFUVVFU1RfSEVBREVSLFxuICBUSFJPVFRMSU5HX1JFVFJZX0RFTEFZX0JBU0UsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0UmV0cnlRdW90YVwiO1xuaW1wb3J0IHsgZGVmYXVsdERlbGF5RGVjaWRlciB9IGZyb20gXCIuL2RlbGF5RGVjaWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdFJldHJ5RGVjaWRlciB9IGZyb20gXCIuL3JldHJ5RGVjaWRlclwiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBob3cgbWFueSBIVFRQIHJlcXVlc3RzIGFuIFNESyBzaG91bGQgbWFrZSBmb3IgYVxuICogc2luZ2xlIFNESyBvcGVyYXRpb24gaW52b2NhdGlvbiBiZWZvcmUgZ2l2aW5nIHVwXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9BVFRFTVBUUyA9IDM7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcmV0cnkgYWxnb3JpdGhtIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfTU9ERSA9IFwic3RhbmRhcmRcIjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmV0cmllc1xuICogYWxyZWFkeSBhdHRlbXB0ZWQsIHRoZSBIVFRQIHN0YXR1cyBjb2RlLCBhbmQgdGhlIGVycm9yIHJlY2VpdmVkIChpZiBhbnkpLlxuICpcbiAqIEBwYXJhbSBlcnJvciAgICAgICAgIFRoZSBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeURlY2lkZXIge1xuICAoZXJyb3I6IFNka0Vycm9yKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIGFuIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGVsYXlCYXNlIFRoZSBiYXNlIGRlbGF5IChpbiBtaWxsaXNlY29uZHMpLlxuICogQHBhcmFtIGF0dGVtcHRzICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiB0cmllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxheURlY2lkZXIge1xuICAoZGVsYXlCYXNlOiBudW1iZXIsIGF0dGVtcHRzOiBudW1iZXIpOiBudW1iZXI7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIHRoZSByZXRyeSBxdW90YSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeVF1b3RhIHtcbiAgLyoqXG4gICAqIHJldHVybnMgdHJ1ZSBpZiByZXRyeSB0b2tlbnMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSByZXRyeSBxdW90YSBidWNrZXQuXG4gICAqL1xuICBoYXNSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogcmV0dXJucyB0b2tlbiBhbW91bnQgZnJvbSB0aGUgcmV0cnkgcXVvdGEgYnVja2V0LlxuICAgKiB0aHJvd3MgZXJyb3IgaXMgcmV0cnkgdG9rZW5zIGFyZSBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmV0cmlldmVSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gbnVtYmVyO1xuXG4gIC8qKlxuICAgKiByZWxlYXNlcyB0b2tlbnMgYmFjayB0byB0aGUgcmV0cnkgcXVvdGEuXG4gICAqL1xuICByZWxlYXNlUmV0cnlUb2tlbnM6IChyZWxlYXNlQ2FwYWNpdHlBbW91bnQ/OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3RyYXRlZ3kgb3B0aW9ucyB0byBiZSBwYXNzZWQgdG8gU3RhbmRhcmRSZXRyeVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRSZXRyeVN0cmF0ZWd5T3B0aW9ucyB7XG4gIHJldHJ5RGVjaWRlcj86IFJldHJ5RGVjaWRlcjtcbiAgZGVsYXlEZWNpZGVyPzogRGVsYXlEZWNpZGVyO1xuICByZXRyeVF1b3RhPzogUmV0cnlRdW90YTtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUmV0cnlTdHJhdGVneSBpbXBsZW1lbnRzIFJldHJ5U3RyYXRlZ3kge1xuICBwcml2YXRlIHJldHJ5RGVjaWRlcjogUmV0cnlEZWNpZGVyO1xuICBwcml2YXRlIGRlbGF5RGVjaWRlcjogRGVsYXlEZWNpZGVyO1xuICBwcml2YXRlIHJldHJ5UXVvdGE6IFJldHJ5UXVvdGE7XG4gIHB1YmxpYyByZWFkb25seSBtb2RlID0gREVGQVVMVF9SRVRSWV9NT0RFO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHNQcm92aWRlcjogUHJvdmlkZXI8bnVtYmVyPiwgb3B0aW9ucz86IFN0YW5kYXJkUmV0cnlTdHJhdGVneU9wdGlvbnMpIHtcbiAgICB0aGlzLnJldHJ5RGVjaWRlciA9IG9wdGlvbnM/LnJldHJ5RGVjaWRlciA/PyBkZWZhdWx0UmV0cnlEZWNpZGVyO1xuICAgIHRoaXMuZGVsYXlEZWNpZGVyID0gb3B0aW9ucz8uZGVsYXlEZWNpZGVyID8/IGRlZmF1bHREZWxheURlY2lkZXI7XG4gICAgdGhpcy5yZXRyeVF1b3RhID0gb3B0aW9ucz8ucmV0cnlRdW90YSA/PyBnZXREZWZhdWx0UmV0cnlRdW90YShJTklUSUFMX1JFVFJZX1RPS0VOUyk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJldHJ5KGVycm9yOiBTZGtFcnJvciwgYXR0ZW1wdHM6IG51bWJlciwgbWF4QXR0ZW1wdHM6IG51bWJlcikge1xuICAgIHJldHVybiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzICYmIHRoaXMucmV0cnlEZWNpZGVyKGVycm9yKSAmJiB0aGlzLnJldHJ5UXVvdGEuaGFzUmV0cnlUb2tlbnMoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNYXhBdHRlbXB0cygpIHtcbiAgICBsZXQgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgICB0cnkge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBhd2FpdCB0aGlzLm1heEF0dGVtcHRzUHJvdmlkZXIoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBERUZBVUxUX01BWF9BVFRFTVBUUztcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHRzO1xuICB9XG5cbiAgYXN5bmMgcmV0cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3VwdXQ+LFxuICAgIGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKSB7XG4gICAgbGV0IHJldHJ5VG9rZW5BbW91bnQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICBsZXQgdG90YWxEZWxheSA9IDA7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IGF3YWl0IHRoaXMuZ2V0TWF4QXR0ZW1wdHMoKTtcblxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW0lOVk9DQVRJT05fSURfSEVBREVSXSA9IHY0KCk7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1JFUVVFU1RfSEVBREVSXSA9IGBhdHRlbXB0PSR7YXR0ZW1wdHMgKyAxfTsgbWF4PSR7bWF4QXR0ZW1wdHN9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBvdXRwdXQgfSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgICAgICAgdGhpcy5yZXRyeVF1b3RhLnJlbGVhc2VSZXRyeVRva2VucyhyZXRyeVRva2VuQW1vdW50KTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS5hdHRlbXB0cyA9IGF0dGVtcHRzICsgMTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlLCBvdXRwdXQgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRSZXRyeShlcnIgYXMgU2RrRXJyb3IsIGF0dGVtcHRzLCBtYXhBdHRlbXB0cykpIHtcbiAgICAgICAgICByZXRyeVRva2VuQW1vdW50ID0gdGhpcy5yZXRyeVF1b3RhLnJldHJpZXZlUmV0cnlUb2tlbnMoZXJyKTtcbiAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuZGVsYXlEZWNpZGVyKFxuICAgICAgICAgICAgaXNUaHJvdHRsaW5nRXJyb3IoZXJyKSA/IFRIUk9UVExJTkdfUkVUUllfREVMQVlfQkFTRSA6IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSxcbiAgICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b3RhbERlbGF5ICs9IGRlbGF5O1xuXG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyLiRtZXRhZGF0YSkge1xuICAgICAgICAgIGVyci4kbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVyci4kbWV0YWRhdGEuYXR0ZW1wdHMgPSBhdHRlbXB0cztcbiAgICAgICAgZXJyLiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens) {\n var MAX_CAPACITY = initialRetryTokens;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJldHJ5UXVvdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdFJldHJ5UXVvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdqRixNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGtCQUEwQjtJQUM3RCxJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUN4QyxJQUFJLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBRTNDLElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQWpFLENBQWlFLENBQUM7SUFFakgsSUFBTSxjQUFjLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBN0MsQ0FBNkMsQ0FBQztJQUUxRixJQUFNLG1CQUFtQixHQUFHLFVBQUMsS0FBZTtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLDREQUE0RDtZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxpQkFBaUIsSUFBSSxjQUFjLENBQUM7UUFDcEMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLHFCQUE4QjtRQUN4RCxpQkFBaUIsSUFBSSxxQkFBcUIsYUFBckIscUJBQXFCLGNBQXJCLHFCQUFxQixHQUFJLGtCQUFrQixDQUFDO1FBQ2pFLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLGNBQWMsZ0JBQUE7UUFDZCxtQkFBbUIscUJBQUE7UUFDbkIsa0JBQWtCLG9CQUFBO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcblxuaW1wb3J0IHsgTk9fUkVUUllfSU5DUkVNRU5ULCBSRVRSWV9DT1NULCBUSU1FT1VUX1JFVFJZX0NPU1QgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSZXRyeVF1b3RhID0gKGluaXRpYWxSZXRyeVRva2VuczogbnVtYmVyKTogUmV0cnlRdW90YSA9PiB7XG4gIGNvbnN0IE1BWF9DQVBBQ0lUWSA9IGluaXRpYWxSZXRyeVRva2VucztcbiAgbGV0IGF2YWlsYWJsZUNhcGFjaXR5ID0gaW5pdGlhbFJldHJ5VG9rZW5zO1xuXG4gIGNvbnN0IGdldENhcGFjaXR5QW1vdW50ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gKGVycm9yLm5hbWUgPT09IFwiVGltZW91dEVycm9yXCIgPyBUSU1FT1VUX1JFVFJZX0NPU1QgOiBSRVRSWV9DT1NUKTtcblxuICBjb25zdCBoYXNSZXRyeVRva2VucyA9IChlcnJvcjogU2RrRXJyb3IpID0+IGdldENhcGFjaXR5QW1vdW50KGVycm9yKSA8PSBhdmFpbGFibGVDYXBhY2l0eTtcblxuICBjb25zdCByZXRyaWV2ZVJldHJ5VG9rZW5zID0gKGVycm9yOiBTZGtFcnJvcikgPT4ge1xuICAgIGlmICghaGFzUmV0cnlUb2tlbnMoZXJyb3IpKSB7XG4gICAgICAvLyByZXRyeVN0cmF0ZWd5IHNob3VsZCBzdG9wIHJldHJ5aW5nLCBhbmQgcmV0dXJuIGxhc3QgZXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJldHJ5IHRva2VuIGF2YWlsYWJsZVwiKTtcbiAgICB9XG4gICAgY29uc3QgY2FwYWNpdHlBbW91bnQgPSBnZXRDYXBhY2l0eUFtb3VudChlcnJvcik7XG4gICAgYXZhaWxhYmxlQ2FwYWNpdHkgLT0gY2FwYWNpdHlBbW91bnQ7XG4gICAgcmV0dXJuIGNhcGFjaXR5QW1vdW50O1xuICB9O1xuXG4gIGNvbnN0IHJlbGVhc2VSZXRyeVRva2VucyA9IChjYXBhY2l0eVJlbGVhc2VBbW91bnQ/OiBudW1iZXIpID0+IHtcbiAgICBhdmFpbGFibGVDYXBhY2l0eSArPSBjYXBhY2l0eVJlbGVhc2VBbW91bnQgPz8gTk9fUkVUUllfSU5DUkVNRU5UO1xuICAgIGF2YWlsYWJsZUNhcGFjaXR5ID0gTWF0aC5taW4oYXZhaWxhYmxlQ2FwYWNpdHksIE1BWF9DQVBBQ0lUWSk7XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xuICAgIGhhc1JldHJ5VG9rZW5zLFxuICAgIHJldHJpZXZlUmV0cnlUb2tlbnMsXG4gICAgcmVsZWFzZVJldHJ5VG9rZW5zLFxuICB9KTtcbn07XG4iXX0=","import { __assign } from \"tslib\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, StandardRetryStrategy } from \"./defaultStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts) });\n};\nvar normalizeMaxAttempts = function (maxAttempts) {\n if (maxAttempts === void 0) { maxAttempts = DEFAULT_MAX_ATTEMPTS; }\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () { return promisified_1; };\n }\n return maxAttempts;\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBHLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSwrQkFBK0IsR0FBa0M7SUFDNUUsMkJBQTJCLEVBQUUsVUFBQyxHQUFHO1FBQy9CLElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUF3QixnQkFBZ0IsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDOUY7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE0QixtQkFBbUIsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDO0FBbUJGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUksS0FBZ0Q7SUFDcEYsSUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELDZCQUNLLEtBQUssS0FDUixXQUFXLGFBQUEsRUFDWCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUM1RTtBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxXQUE2RDtJQUE3RCw0QkFBQSxFQUFBLGtDQUE2RDtJQUN6RixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUFrQztJQUMzRSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBbkIsQ0FBbUI7SUFDekQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBMUIsQ0FBMEI7SUFDM0QsT0FBTyxFQUFFLGtCQUFrQjtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSBcIkBhd3Mtc2RrL25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBERUZBVUxUX01BWF9BVFRFTVBUUywgREVGQVVMVF9SRVRSWV9NT0RFLCBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IEVOVl9NQVhfQVRURU1QVFMgPSBcIkFXU19NQVhfQVRURU1QVFNcIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfTUFYX0FUVEVNUFRTID0gXCJtYXhfYXR0ZW1wdHNcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxudW1iZXI+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGVudltFTlZfTUFYX0FUVEVNUFRTXTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1heEF0dGVtcHQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihtYXhBdHRlbXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke0VOVl9NQVhfQVRURU1QVFN9IG1hc3QgYmUgYSBudW1iZXIsIGdvdCBcIiR7dmFsdWV9XCJgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHQ7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX01BWF9BVFRFTVBUU107XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXhBdHRlbXB0ID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obWF4QXR0ZW1wdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIGNvbmZpZyBmaWxlIGVudHJ5ICR7Q09ORklHX01BWF9BVFRFTVBUU30gbWFzdCBiZSBhIG51bWJlciwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgIH1cbiAgICByZXR1cm4gbWF4QXR0ZW1wdDtcbiAgfSxcbiAgZGVmYXVsdDogREVGQVVMVF9NQVhfQVRURU1QVFMsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5SW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHJlcXVlc3RzIHRoYXQgZW5jb3VudGVyIHJldHJ5YWJsZSBmYWlsdXJlcyBzaG91bGQgYmUgYXR0ZW1wdGVkLlxuICAgKi9cbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXIgfCBQcm92aWRlcjxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHJldHJ5IHRoZSByZXF1ZXN0LiBVc2luZyBidWlsdC1pbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0cmF0ZWd5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZXRyeVN0cmF0ZWd5PzogUmV0cnlTdHJhdGVneTtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7fVxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVJlc29sdmVkQ29uZmlnIHtcbiAgbWF4QXR0ZW1wdHM6IFByb3ZpZGVyPG51bWJlcj47XG4gIHJldHJ5U3RyYXRlZ3k6IFJldHJ5U3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmV0cnlDb25maWcgPSA8VD4oaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBSZXRyeUlucHV0Q29uZmlnKTogVCAmIFJldHJ5UmVzb2x2ZWRDb25maWcgPT4ge1xuICBjb25zdCBtYXhBdHRlbXB0cyA9IG5vcm1hbGl6ZU1heEF0dGVtcHRzKGlucHV0Lm1heEF0dGVtcHRzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtYXhBdHRlbXB0cyxcbiAgICByZXRyeVN0cmF0ZWd5OiBpbnB1dC5yZXRyeVN0cmF0ZWd5IHx8IG5ldyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kobWF4QXR0ZW1wdHMpLFxuICB9O1xufTtcblxuY29uc3Qgbm9ybWFsaXplTWF4QXR0ZW1wdHMgPSAobWF4QXR0ZW1wdHM6IG51bWJlciB8IFByb3ZpZGVyPG51bWJlcj4gPSBERUZBVUxUX01BWF9BVFRFTVBUUyk6IFByb3ZpZGVyPG51bWJlcj4gPT4ge1xuICBpZiAodHlwZW9mIG1heEF0dGVtcHRzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUobWF4QXR0ZW1wdHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gbWF4QXR0ZW1wdHM7XG59O1xuXG5leHBvcnQgY29uc3QgRU5WX1JFVFJZX01PREUgPSBcIkFXU19SRVRSWV9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX1JFVFJZX01PREUgPSBcInJldHJ5X21vZGVcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPHN0cmluZz4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gZW52W0VOVl9SRVRSWV9NT0RFXSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gcHJvZmlsZVtDT05GSUdfUkVUUllfTU9ERV0sXG4gIGRlZmF1bHQ6IERFRkFVTFRfUkVUUllfTU9ERSxcbn07XG4iXX0=","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVM7SUFDM0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztnQkFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDbkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNO2dCQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLEdBQUcsQ0FBQztLQUNaO1NBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1FBQzlDLCtEQUErRDtRQUMvRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDeEI7U0FBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEMsOEJBQThCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQm9keUxlbmd0aChib2R5OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBsZXQgbGVuID0gYm9keS5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBib2R5LmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgbGVuKys7XG4gICAgICBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIGxlbiArPSAyO1xuICAgIH1cblxuICAgIHJldHVybiBsZW47XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuYnl0ZUxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgVWludDhBcnJheSwgQXJyYXlCdWZmZXIsIEJ1ZmZlciwgYW5kIEFycmF5QnVmZmVyVmlld1xuICAgIHJldHVybiBib2R5LmJ5dGVMZW5ndGg7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuc2l6ZSA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgYnJvd3NlciBGaWxlIG9iamVjdFxuICAgIHJldHVybiBib2R5LnNpemU7XG4gIH1cbn1cbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser.parse(window.navigator.userAgent) : undefined;\n sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // os-metadata\n [\"os/\" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"],\n // browser vendor and version.\n [\"md/browser\", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\") + \"_\" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n // api-metadata\n // service Id may not appear in non-AWS clients\n sections.push([\"api/\" + serviceId, clientVersion]);\n }\n return [2 /*return*/, sections];\n });\n }); };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLEVBR1A7UUFGeEIsU0FBUyxlQUFBLEVBQ1QsYUFBYSxtQkFBQTtJQUNxQyxPQUFBOzs7O1lBQzVDLFFBQVEsR0FBRyxPQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLDBDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsUUFBUSxHQUFjO2dCQUMxQixlQUFlO2dCQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDN0IsY0FBYztnQkFDZCxDQUFDLFNBQU0sT0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsRUFBRSwwQ0FBRSxJQUFJLEtBQUksT0FBTyxDQUFFLFFBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsT0FBTyxDQUFDO2dCQUM5RCxvQkFBb0I7Z0JBQ3BCLDJDQUEyQztnQkFDM0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ1gsOEJBQThCO2dCQUM5QixDQUFDLFlBQVksRUFBRSxhQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLElBQUksbUNBQUksU0FBUyx1QkFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxPQUFPLG1DQUFJLFNBQVMsQ0FBRSxDQUFDO2FBQ3JHLENBQUM7WUFFRixJQUFJLFNBQVMsRUFBRTtnQkFDYixlQUFlO2dCQUNmLCtDQUErQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQU8sU0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxzQkFBTyxRQUFRLEVBQUM7O1NBQ2pCO0FBckJtRCxDQXFCbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCBib3dzZXIgZnJvbSBcImJvd3NlclwiO1xuXG5pbXBvcnQgeyBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciB0byB0aGUgdXNlciBhZ2VudCBpbiBicm93c2Vycy4gSXQncyBhIGJlc3QgZWZmb3J0IHRvIGluZmVyXG4gKiB0aGUgZGV2aWNlIGluZm9ybWF0aW9uLiBJdCB1c2VzIGJvd3NlciBsaWJyYXJ5IHRvIGRldGVjdCB0aGUgYnJvd3NlciBhbmQgdmlyc2lvblxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9ICh7XG4gIHNlcnZpY2VJZCxcbiAgY2xpZW50VmVyc2lvbixcbn06IERlZmF1bHRVc2VyQWdlbnRPcHRpb25zKTogUHJvdmlkZXI8VXNlckFnZW50PiA9PiBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFVBID0gd2luZG93Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudCA/IGJvd3Nlci5wYXJzZSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlY3Rpb25zOiBVc2VyQWdlbnQgPSBbXG4gICAgLy8gc2RrLW1ldGFkYXRhXG4gICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAvLyBvcy1tZXRhZGF0YVxuICAgIFtgb3MvJHtwYXJzZWRVQT8ub3M/Lm5hbWUgfHwgXCJvdGhlclwifWAsIHBhcnNlZFVBPy5vcz8udmVyc2lvbl0sXG4gICAgLy8gbGFuZ3VhZ2UtbWV0YWRhdGFcbiAgICAvLyBFQ01BU2NyaXB0IGVkaXRpb24gZG9lc24ndCBtYXR0ZXIgaW4gSlMuXG4gICAgW1wibGFuZy9qc1wiXSxcbiAgICAvLyBicm93c2VyIHZlbmRvciBhbmQgdmVyc2lvbi5cbiAgICBbXCJtZC9icm93c2VyXCIsIGAke3BhcnNlZFVBPy5icm93c2VyPy5uYW1lID8/IFwidW5rbm93blwifV8ke3BhcnNlZFVBPy5icm93c2VyPy52ZXJzaW9uID8/IFwidW5rbm93blwifWBdLFxuICBdO1xuXG4gIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAvLyBhcGktbWV0YWRhdGFcbiAgICAvLyBzZXJ2aWNlIElkIG1heSBub3QgYXBwZWFyIGluIG5vbi1BV1MgY2xpZW50c1xuICAgIHNlY3Rpb25zLnB1c2goW2BhcGkvJHtzZXJ2aWNlSWR9YCwgY2xpZW50VmVyc2lvbl0pO1xuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbiJdfQ==","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"kinesis.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"kinesis.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"kinesis.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"kinesis.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"kinesis.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"af-south-1\":\n regionInfo = {\n hostname: \"kinesis.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"kinesis.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"kinesis.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"kinesis.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"kinesis.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"kinesis.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"kinesis.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"kinesis.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"kinesis.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"kinesis.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"kinesis.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"kinesis.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"kinesis.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"kinesis.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"kinesis.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"kinesis.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"kinesis-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"kinesis-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-west-1\":\n regionInfo = {\n hostname: \"kinesis-fips.us-west-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"kinesis-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"kinesis.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"kinesis.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"kinesis.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"kinesis.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"kinesis.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-east-1\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"kinesis.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"us-iso-east-1\":\n regionInfo = {\n hostname: \"kinesis.us-iso-east-1.c2s.ic.gov\",\n partition: \"aws-iso\",\n };\n break;\n case \"us-isob-east-1\":\n regionInfo = {\n hostname: \"kinesis.us-isob-east-1.sc2s.sgov.gov\",\n partition: \"aws-iso-b\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"kinesis.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"kinesis.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"kinesis\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n var _a = new URL(url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0QsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFjLFVBQUMsR0FBVztJQUN2QyxJQUFBLEtBQWlELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUEzRCxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxNQUFNLFlBQWlCLENBQUM7SUFFcEUsSUFBSSxLQUFvQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxFQUFFO1FBQ1YsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsT0FBTztRQUNMLFFBQVEsVUFBQTtRQUNSLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN2QyxRQUFRLFVBQUE7UUFDUixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssT0FBQTtLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSBcIkBhd3Mtc2RrL3F1ZXJ5c3RyaW5nLXBhcnNlclwiO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFF1ZXJ5UGFyYW1ldGVyQmFnLCBVcmxQYXJzZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXJsOiBVcmxQYXJzZXIgPSAodXJsOiBzdHJpbmcpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lLCBwb3J0LCBwcm90b2NvbCwgc2VhcmNoIH0gPSBuZXcgVVJMKHVybCk7XG5cbiAgbGV0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHNlYXJjaCkge1xuICAgIHF1ZXJ5ID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0ID8gcGFyc2VJbnQocG9ydCkgOiB1bmRlZmluZWQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aDogcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQjs7SUFDbEQsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0MsSUFBSSxXQUFXLEVBQUU7O1lBQ2YsS0FBbUIsSUFBQSxLQUFBLFNBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBTSxJQUFJLFdBQUE7Z0JBQ1QsSUFBQSxLQUFBLE9BQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsRUFBcEMsR0FBRyxRQUFBLEVBQUUsVUFBWSxFQUFaLEtBQUssbUJBQUcsSUFBSSxLQUFtQixDQUFDO2dCQUMxQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksS0FBSyxFQUFFO29CQUNULEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxHQUFHLENBQW1CLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEVBQUUsS0FBZSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUXVlcnlTdHJpbmcocXVlcnlzdHJpbmc6IHN0cmluZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnIHtcbiAgY29uc3QgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnID0ge307XG4gIHF1ZXJ5c3RyaW5nID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sIFwiXCIpO1xuXG4gIGlmIChxdWVyeXN0cmluZykge1xuICAgIGZvciAoY29uc3QgcGFpciBvZiBxdWVyeXN0cmluZy5zcGxpdChcIiZcIikpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZSA9IG51bGxdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgICBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIShrZXkgaW4gcXVlcnkpKSB7XG4gICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgICAocXVlcnlba2V5XSBhcyBBcnJheTxzdHJpbmc+KS5wdXNoKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWVyeTtcbn1cbiJdfQ==","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2013-12-02\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Kinesis\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { eventStreamSerdeProvider } from \"@aws-sdk/eventstream-serde-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), eventStreamSerdeProvider: eventStreamSerdeProvider, maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\n/** browser event stream serde utils provider */\nexport var eventStreamSerdeProvider = function (options) { return new EventStreamMarshaller(options); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsZ0RBQWdEO0FBQ2hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUE2QixVQUFDLE9BSWxFLElBQUssT0FBQSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFsQyxDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTaWduZXIsIEV2ZW50U3RyZWFtU2VyZGVQcm92aWRlciwgUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIH0gZnJvbSBcIi4vRXZlbnRTdHJlYW1NYXJzaGFsbGVyXCI7XG5cbi8qKiBicm93c2VyIGV2ZW50IHN0cmVhbSBzZXJkZSB1dGlscyBwcm92aWRlciAqL1xuZXhwb3J0IGNvbnN0IGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID0gKG9wdGlvbnM6IHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xuICBldmVudFNpZ25lcjogRXZlbnRTaWduZXIgfCBQcm92aWRlcjxFdmVudFNpZ25lcj47XG59KSA9PiBuZXcgRXZlbnRTdHJlYW1NYXJzaGFsbGVyKG9wdGlvbnMpO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n return (__assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: input.endpoint ? normalizeEndpoint(input) : function () { return getEndPointFromRegion(input); }, isCustomEndpoint: input.endpoint ? true : false }));\n};\nvar normalizeEndpoint = function (input) {\n var endpoint = input.endpoint, urlParser = input.urlParser;\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () { return promisified_1; };\n }\n else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () { return promisified_2; };\n }\n return endpoint;\n};\nvar getEndPointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4 /*yield*/, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4 /*yield*/, input.regionInfoProvider(region)];\n case 2:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2 /*return*/, input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRzQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VuZHBvaW50c0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBeUJBLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQ3BDLEtBQW9EOztJQUNwQixPQUFBLHVCQUM3QixLQUFLLEtBQ1IsR0FBRyxRQUFFLEtBQUssQ0FBQyxHQUFHLG1DQUFJLElBQUksRUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFNLE9BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQTVCLENBQTRCLEVBQ3hGLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUMvQyxDQUFBO0NBQUEsQ0FBQztBQUVILElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFnRDtJQUNqRSxJQUFBLFFBQVEsR0FBZ0IsS0FBSyxTQUFyQixFQUFFLFNBQVMsR0FBSyxLQUFLLFVBQVYsQ0FBVztJQUN0QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNoQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUN2QyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFFBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLFVBQU8sS0FBZ0Q7Ozs7OztnQkFDM0UsS0FBZSxLQUFLLElBQVYsRUFBVixHQUFHLG1CQUFHLElBQUksS0FBQSxDQUFXO2dCQUNkLHFCQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQTdCLE1BQU0sR0FBRyxTQUFvQjtnQkFFN0IsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ3BEO2dCQUVxQixxQkFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUE7O2dCQUFwRCxRQUFRLFVBQUssQ0FBQyxTQUFzQyxDQUFDLG1DQUFJLEVBQUUsVUFBbkQ7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxzQkFBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sV0FBSyxRQUFVLENBQUMsRUFBQzs7O0tBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCwgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciwgVXJsUGFyc2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRzSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBlbmRwb2ludCBvZiB0aGUgd2Vic2VydmljZS4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBjdXN0b20gZW5kcG9pbnQgKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGEgbG9jYWwgdmVyc2lvbiBvZiBTMykuXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZyB8IEVuZHBvaW50IHwgUHJvdmlkZXI8RW5kcG9pbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIFRMUyBpcyBlbmFibGVkIGZvciByZXF1ZXN0cy5cbiAgICovXG4gIHRscz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgdXJsUGFyc2VyOiBVcmxQYXJzZXI7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHNSZXNvbHZlZENvbmZpZyBleHRlbmRzIFJlcXVpcmVkPEVuZHBvaW50c0lucHV0Q29uZmlnPiB7XG4gIGVuZHBvaW50OiBQcm92aWRlcjxFbmRwb2ludD47XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRW5kcG9pbnRzQ29uZmlnID0gPFQ+KFxuICBpbnB1dDogVCAmIEVuZHBvaW50c0lucHV0Q29uZmlnICYgUHJldmlvdXNseVJlc29sdmVkXG4pOiBUICYgRW5kcG9pbnRzUmVzb2x2ZWRDb25maWcgPT4gKHtcbiAgLi4uaW5wdXQsXG4gIHRsczogaW5wdXQudGxzID8/IHRydWUsXG4gIGVuZHBvaW50OiBpbnB1dC5lbmRwb2ludCA/IG5vcm1hbGl6ZUVuZHBvaW50KGlucHV0KSA6ICgpID0+IGdldEVuZFBvaW50RnJvbVJlZ2lvbihpbnB1dCksXG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGlucHV0LmVuZHBvaW50ID8gdHJ1ZSA6IGZhbHNlLFxufSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUVuZHBvaW50ID0gKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb3ZpZGVyPEVuZHBvaW50PiA9PiB7XG4gIGNvbnN0IHsgZW5kcG9pbnQsIHVybFBhcnNlciB9ID0gaW5wdXQ7XG4gIGlmICh0eXBlb2YgZW5kcG9pbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZSh1cmxQYXJzZXIoZW5kcG9pbnQpKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoZW5kcG9pbnQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gZW5kcG9pbnQhO1xufTtcblxuY29uc3QgZ2V0RW5kUG9pbnRGcm9tUmVnaW9uID0gYXN5bmMgKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCkgPT4ge1xuICBjb25zdCB7IHRscyA9IHRydWUgfSA9IGlucHV0O1xuICBjb25zdCByZWdpb24gPSBhd2FpdCBpbnB1dC5yZWdpb24oKTtcblxuICBjb25zdCBkbnNIb3N0UmVnZXggPSBuZXcgUmVnRXhwKC9eKFthLXpBLVowLTldfFthLXpBLVowLTldW2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pJC8pO1xuICBpZiAoIWRuc0hvc3RSZWdleC50ZXN0KHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHJlZ2lvbiBpbiBjbGllbnQgY29uZmlnXCIpO1xuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSB9ID0gKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSA/PyB7fTtcbiAgaWYgKCFob3N0bmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIGZyb20gY2xpZW50IGNvbmZpZ1wiKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dC51cmxQYXJzZXIoYCR7dGxzID8gXCJodHRwczpcIiA6IFwiaHR0cDpcIn0vLyR7aG9zdG5hbWV9YCk7XG59O1xuIl19","import { __assign } from \"tslib\";\nexport var REGION_ENV_NAME = \"AWS_REGION\";\nexport var REGION_INI_NAME = \"region\";\nexport var NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[REGION_ENV_NAME]; },\n configFileSelector: function (profile) { return profile[REGION_INI_NAME]; },\n default: function () {\n throw new Error(\"Region is missing\");\n },\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\nexport var resolveRegionConfig = function (input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: normalizeRegion(input.region) });\n};\nvar normalizeRegion = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n return region;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JlZ2lvbkNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFlBQVksQ0FBQztBQUM1QyxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFrQztJQUN2RSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBcEIsQ0FBb0I7SUFDMUQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQXhCLENBQXdCO0lBQ3pELE9BQU8sRUFBRTtRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLCtCQUErQixHQUF1QjtJQUNqRSxhQUFhLEVBQUUsYUFBYTtDQUM3QixDQUFDO0FBZUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBSSxLQUFpRDtJQUN0RixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEM7SUFDRCw2QkFDSyxLQUFLLEtBQ1IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLElBQ3RDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFpQztJQUN4RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLE1BQTBCLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzLCBMb2NhbENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRUdJT05fRU5WX05BTUUgPSBcIkFXU19SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBSRUdJT05fSU5JX05BTUUgPSBcInJlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxzdHJpbmc+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltSRUdJT05fRU5WX05BTUVdLFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBwcm9maWxlW1JFR0lPTl9JTklfTkFNRV0sXG4gIGRlZmF1bHQ6ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gaXMgbWlzc2luZ1wiKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOiBMb2NhbENvbmZpZ09wdGlvbnMgPSB7XG4gIHByZWZlcnJlZEZpbGU6IFwiY3JlZGVudGlhbHNcIixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdG8gd2hpY2ggdGhpcyBjbGllbnQgd2lsbCBzZW5kIHJlcXVlc3RzXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uUmVzb2x2ZWRDb25maWcge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmVnaW9uQ29uZmlnID0gPFQ+KGlucHV0OiBUICYgUmVnaW9uSW5wdXRDb25maWcgJiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBUICYgUmVnaW9uUmVzb2x2ZWRDb25maWcgPT4ge1xuICBpZiAoIWlucHV0LnJlZ2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiBpcyBtaXNzaW5nXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24oaW5wdXQucmVnaW9uISksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVSZWdpb24gPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIHJlZ2lvbiBhcyBQcm92aWRlcjxzdHJpbmc+O1xufTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVlyRCxJQUFNLHFCQUFxQixHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxpQkFBdUM7SUFBL0UsaUJBNEJDO0lBM0JDLE9BQU8sVUFBZ0MsSUFBK0IsSUFBZ0MsT0FBQSxVQUNwRyxJQUFnQzs7OztZQUUxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksR0FBYyxPQUFPLEtBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUNsQyxJQUNFLElBQUk7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ2pCLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQzt5QkFDL0IsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hDO29CQUNNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxnQkFDakIscUJBQXFCLElBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUN4QyxDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBMUJxRyxDQTBCckcsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw4QkFBOEIsR0FBd0I7SUFDakUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QyxJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQUMsT0FBb0QsSUFBMEIsT0FBQSxDQUFDO0lBQ3BILFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRixDQUFDLEVBSm1ILENBSW5ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCb2R5TGVuZ3RoQ2FsY3VsYXRvcixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuY29uc3QgQ09OVEVOVF9MRU5HVEhfSEVBREVSID0gXCJjb250ZW50LWxlbmd0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudExlbmd0aE1pZGRsZXdhcmUoYm9keUxlbmd0aENoZWNrZXI6IEJvZHlMZW5ndGhDYWxjdWxhdG9yKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgY29uc3QgeyBib2R5LCBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgICAgaWYgKFxuICAgICAgICBib2R5ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuaW5kZXhPZihDT05URU5UX0xFTkdUSF9IRUFERVIpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGJvZHlMZW5ndGhDaGVja2VyKGJvZHkpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICBbQ09OVEVOVF9MRU5HVEhfSEVBREVSXTogU3RyaW5nKGxlbmd0aCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9DT05URU5UX0xFTkdUSFwiLCBcIkNPTlRFTlRfTEVOR1RIXCJdLFxuICBuYW1lOiBcImNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gPSAob3B0aW9uczogeyBib2R5TGVuZ3RoQ2hlY2tlcjogQm9keUxlbmd0aENhbGN1bGF0b3IgfSk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY29udGVudExlbmd0aE1pZGRsZXdhcmUob3B0aW9ucy5ib2R5TGVuZ3RoQ2hlY2tlciksIGNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2 /*return*/, next(args)];\n });\n}); }; }; };\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVyRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQXFEO0lBRXJELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQWlDLElBQ0UsT0FBQSxVQUFDLElBQUksSUFBSyxPQUFBLFVBQU8sSUFBSTs7O1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7UUFDckQsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1FBQ2pCLEtBQXlCLENBQUEsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFBLGdCQUExQyxFQUFwQixlQUFlLG1CQUFHLEVBQUUsS0FBQSxDQUEyQztRQUN2RSwwRUFBMEU7UUFDMUUsMkdBQTJHO1FBQzNHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQywyRkFBMkY7U0FDNUY7YUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDNUM7UUFDRCxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7O0tBQ25CLEVBZDhDLENBYzlDLEVBZG9DLENBY3BDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBMkM7SUFDakYsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2QsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUFpQyxJQUEwQixPQUFBLENBQUM7SUFDOUYsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsRUFKNkYsQ0FJN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IEFic29sdXRlTG9jYXRpb24sIEJ1aWxkSGFuZGxlck9wdGlvbnMsIEJ1aWxkTWlkZGxld2FyZSwgUGx1Z2dhYmxlLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJJbnB1dENvbmZpZyB7fVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgSG9zdEhlYWRlcklucHV0Q29uZmlnXG4pOiBUICYgSG9zdEhlYWRlclJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSA8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4oXG4gIG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZ1xuKTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAvL0ZvciBIMiByZXF1ZXN0LCByZW1vdmUgJ2hvc3QnIGhlYWRlciBhbmQgdXNlICc6YXV0aG9yaXR5JyBoZWFkZXIgaW5zdGVhZFxuICAvL3JlZmVyZW5jZTogaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMy54L2RvY3MvYXBpL2Vycm9ycy5odG1sI0VSUl9IVFRQMl9JTlZBTElEX0NPTk5FQ1RJT05fSEVBREVSU1xuICBpZiAoaGFuZGxlclByb3RvY29sLmluZGV4T2YoXCJoMlwiKSA+PSAwICYmICFyZXF1ZXN0LmhlYWRlcnNbXCI6YXV0aG9yaXR5XCJdKSB7XG4gICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IFwiXCI7XG4gICAgLy9ub24tSDIgcmVxdWVzdCBhbmQgJ2hvc3QnIGhlYWRlciBpcyBub3Qgc2V0LCBzZXQgdGhlICdob3N0JyBoZWFkZXIgdG8gcmVxdWVzdCdzIGhvc3RuYW1lLlxuICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IHJlcXVlc3QuaG9zdG5hbWU7XG4gIH1cbiAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHByaW9yaXR5OiBcImxvd1wiLFxuICB0YWdzOiBbXCJIT1NUXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0SGVhZGVyUGx1Z2luID0gKG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4 /*yield*/, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2 /*return*/, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2 /*return*/, response];\n }\n });\n}); }; }; };\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxjQUFNLE9BQUEsVUFDcEMsSUFBb0MsRUFDcEMsT0FBZ0MsSUFDRyxPQUFBLFVBQ25DLElBQXFDOzs7OztnQkFFN0IsVUFBVSxHQUE2RSxPQUFPLFdBQXBGLEVBQUUsV0FBVyxHQUFnRSxPQUFPLFlBQXZFLEVBQUUsdUJBQXVCLEdBQXVDLE9BQU8sd0JBQTlDLEVBQUUsTUFBTSxHQUErQixPQUFPLE9BQXRDLEVBQUUsd0JBQXdCLEdBQUssT0FBTyx5QkFBWixDQUFhO2dCQUV0RixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUEzQixRQUFRLEdBQUcsU0FBZ0I7Z0JBRWpDLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1gsc0JBQU8sUUFBUSxFQUFDO2lCQUNqQjtnQkFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7b0JBQy9CLEtBQTBDLFFBQVEsQ0FBQyxNQUFNLEVBQXZELFNBQVMsZUFBQSxFQUFLLHFCQUFxQixjQUFyQyxhQUF1QyxDQUFGLENBQXFCO29CQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLFVBQVUsWUFBQTt3QkFDVixXQUFXLGFBQUE7d0JBQ1gsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7d0JBQzFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDdkQsUUFBUSxFQUFFLFNBQVM7cUJBQ3BCLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxzQkFBTyxRQUFRLEVBQUM7OztLQUNqQixFQXZCb0MsQ0F1QnBDLEVBMUJxQyxDQTBCckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFnRDtJQUNsRixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNoQixJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRiw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBWSxJQUEwQixPQUFBLENBQUM7SUFDckUsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YsQ0FBQyxFQUpvRSxDQUlwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZSA9ICgpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgYXJnczogSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBsb2dnZXIsIG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gY29udGV4dDtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgaWYgKCFsb2dnZXIpIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGxvZ2dlci5pbmZvID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCB7ICRtZXRhZGF0YSwgLi4ub3V0cHV0V2l0aG91dE1ldGFkYXRhIH0gPSByZXNwb25zZS5vdXRwdXQ7XG4gICAgbG9nZ2VyLmluZm8oe1xuICAgICAgY2xpZW50TmFtZSxcbiAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7XG4gIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJMT0dHRVJcIl0sXG4gIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9uczogYW55KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n if (cacheKey in signingKeyCache) {\n return [2 /*return*/, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 6];\n signable = _b.value;\n return [4 /*yield*/, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\n/**\n * @internal\n */\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2 /*return*/, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3 /*break*/, 1];\n return [2 /*return*/, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3 /*break*/, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4 /*yield*/, hashCtor.digest()];\n case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];\n case 3: \n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2 /*return*/, UNSIGNED_PAYLOAD];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19","export var isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLFVBQUMsR0FBUTtJQUNwQyxPQUFBLENBQUMsT0FBTyxXQUFXLEtBQUssVUFBVSxJQUFJLEdBQUcsWUFBWSxXQUFXLENBQUM7UUFDakUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLHNCQUFzQjtBQUQ5RCxDQUM4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQXJyYXlCdWZmZXIgPSAoYXJnOiBhbnkpOiBhcmcgaXMgQXJyYXlCdWZmZXIgPT5cbiAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIGFyZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fFxuICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiO1xuIl19","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\nexport function cloneRequest(_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\nexport function prepareRequest(request) {\n var e_1, _a;\n // Create a clone of the request object that does not clone the body\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=","export function iso8601(time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = /** @class */ (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _c = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2 /*return*/, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4 /*yield*/, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2 /*return*/, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2 /*return*/, this.signEvent(toSign, options)];\n }\n else {\n return [2 /*return*/, this.signRequest(toSign, options)];\n }\n return [2 /*return*/];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];\n _d = signingRegion;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4 /*yield*/, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4 /*yield*/, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4 /*yield*/, hash.digest()];\n case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4 /*yield*/, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n ALGORITHM_IDENTIFIER + \" \" +\n (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") +\n (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") +\n (\"Signature=\" + signature);\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) { return name + \":\" + canonicalHeaders[name]; }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4 /*yield*/, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2 /*return*/, ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4 /*yield*/, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4 /*yield*/, hash.digest()];\n case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\nvar normalizeRegionProvider = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n else {\n return region;\n }\n};\nvar normalizeCredentialsProvider = function (credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () { return promisified_2; };\n }\n else {\n return credentials;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers,\n query: query });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBQyxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUMsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; }) // omit any falsy values\n .join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport function resolveAwsAuthConfig(input) {\n var _this = this;\n var credentials = input.credentials || input.credentialDefaultProvider(input);\n var normalizedCreds = normalizeProvider(credentials);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n }\n else {\n //construct a provider inferring signing from region.\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, input.regionInfoProvider(region)];\n case 1: return [2 /*return*/, [(_a.sent()) || {}, region]];\n }\n }); }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n input.signingRegion = input.signingRegion || signingRegion || region;\n //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n input.signingName = input.signingName || signingService || input.serviceId;\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n });\n });\n };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n}\nfunction normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () { return promisified_1; };\n }\n return input;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQTRDcEQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEtBQWtEO0lBQTFGLGlCQXVDQztJQXRDQyxJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUN2RixJQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFBLEtBQXVGLEtBQUssa0JBQXBFLEVBQXhCLGlCQUFpQixtQkFBRyxJQUFJLEtBQUEsRUFBRSxLQUE2RCxLQUFLLGtCQUFsQixFQUFoRCxpQkFBaUIsbUJBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBQSxFQUFFLE1BQU0sR0FBSyxLQUFLLE9BQVYsQ0FBVztJQUNyRyxJQUFJLE1BQStCLENBQUM7SUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2hCLDJGQUEyRjtRQUMzRixNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDTCxxREFBcUQ7UUFDckQsTUFBTSxHQUFHO1lBQ1AsT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzlCLElBQUksQ0FBQyxVQUFPLE1BQU07OzRCQUFPLHFCQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBQTs0QkFBeEMsc0JBQUEsQ0FBQyxDQUFDLFNBQXNDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUF5QixFQUFBOztxQkFBQSxDQUFDO2lCQUN4RyxJQUFJLENBQUMsVUFBQyxFQUFvQjtvQkFBcEIsS0FBQSxhQUFvQixFQUFuQixVQUFVLFFBQUEsRUFBRSxNQUFNLFFBQUE7Z0JBQ2hCLElBQUEsYUFBYSxHQUFxQixVQUFVLGNBQS9CLEVBQUUsY0FBYyxHQUFLLFVBQVUsZUFBZixDQUFnQjtnQkFDckQsaUZBQWlGO2dCQUNqRixnSEFBZ0g7Z0JBQ2hILEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO2dCQUNyRSwrQkFBK0I7Z0JBQy9CLG1IQUFtSDtnQkFDbkgsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGNBQWMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUUzRSxPQUFPLElBQUksV0FBVyxDQUFDO29CQUNyQixXQUFXLEVBQUUsZUFBZTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzFCLE1BQU0sUUFBQTtvQkFDTixhQUFhLEVBQUUsaUJBQWlCO2lCQUNqQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7UUFsQkosQ0FrQkksQ0FBQztLQUNSO0lBRUQsNkJBQ0ssS0FBSyxLQUNSLGlCQUFpQixtQkFBQTtRQUNqQixpQkFBaUIsbUJBQUEsRUFDakIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsTUFBTSxRQUFBLElBQ047QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxLQUFzQjtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLEtBQW9CLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgUHJvdmlkZXIsIFJlZ2lvbkluZm8sIFJlZ2lvbkluZm9Qcm92aWRlciwgUmVxdWVzdFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0F1dGhJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgdXNlZCB0byBzaWduIHJlcXVlc3RzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogVGhlIHNpZ25lciB0byB1c2Ugd2hlbiBzaWduaW5nIHJlcXVlc3RzLlxuICAgKi9cbiAgc2lnbmVyPzogUmVxdWVzdFNpZ25lciB8IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVzY2FwZSByZXF1ZXN0IHBhdGggd2hlbiBzaWduaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgc2lnbmluZ0VzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBvZmZzZXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nIHRpbWVzLlxuICAgKi9cbiAgc3lzdGVtQ2xvY2tPZmZzZXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgeW91IHdhbnQgdG8gc2lnbiB5b3VyIHJlcXVlc3QgYWdhaW5zdC4gVGhpc1xuICAgKiBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSByZWdpb24gaW4gdGhlIGVuZHBvaW50LlxuICAgKi9cbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoaW5wdXQ6IGFueSkgPT4gUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBzaWduaW5nTmFtZT86IHN0cmluZztcbiAgc2VydmljZUlkOiBzdHJpbmc7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuZXhwb3J0IGludGVyZmFjZSBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjcmVkZW50aWFsczogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBzaWduZXI6IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuICBzaWduaW5nRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXdzQXV0aENvbmZpZzxUPihpbnB1dDogVCAmIEF3c0F1dGhJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFQgJiBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCBjcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzIHx8IGlucHV0LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaW5wdXQgYXMgYW55KTtcbiAgY29uc3Qgbm9ybWFsaXplZENyZWRzID0gbm9ybWFsaXplUHJvdmlkZXIoY3JlZGVudGlhbHMpO1xuICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBpbnB1dC5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYgfSA9IGlucHV0O1xuICBsZXQgc2lnbmVyOiBQcm92aWRlcjxSZXF1ZXN0U2lnbmVyPjtcbiAgaWYgKGlucHV0LnNpZ25lcikge1xuICAgIC8vaWYgc2lnbmVyIGlzIHN1cHBsaWVkIGJ5IHVzZXIsIG5vcm1hbGl6ZSBpdCB0byBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHByb21pc2UgZm9yIHNpZ25lci5cbiAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihpbnB1dC5zaWduZXIpO1xuICB9IGVsc2Uge1xuICAgIC8vY29uc3RydWN0IGEgcHJvdmlkZXIgaW5mZXJyaW5nIHNpZ25pbmcgZnJvbSByZWdpb24uXG4gICAgc2lnbmVyID0gKCkgPT5cbiAgICAgIG5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnJlZ2lvbikoKVxuICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSB8fCB7fSwgcmVnaW9uXSBhcyBbUmVnaW9uSW5mbywgc3RyaW5nXSlcbiAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9ID0gcmVnaW9uSW5mbztcbiAgICAgICAgICAvL3VwZGF0ZSBjbGllbnQncyBzaW5naW5nIHJlZ2lvbiBhbmQgc2lnbmluZyBzZXJ2aWNlIGNvbmZpZyBpZiB0aGV5IGFyZSByZXNvbHZlZC5cbiAgICAgICAgICAvL3NpZ25pbmcgcmVnaW9uIHJlc29sdmluZyBvcmRlcjogdXNlciBzdXBwbGllZCBzaWduaW5nUmVnaW9uIC0+IGVuZHBvaW50cy5qc29uIGluZmVycmVkIHJlZ2lvbiAtPiBjbGllbnQgcmVnaW9uXG4gICAgICAgICAgaW5wdXQuc2lnbmluZ1JlZ2lvbiA9IGlucHV0LnNpZ25pbmdSZWdpb24gfHwgc2lnbmluZ1JlZ2lvbiB8fCByZWdpb247XG4gICAgICAgICAgLy9zaWduaW5nIG5hbWUgcmVzb2x2aW5nIG9yZGVyOlxuICAgICAgICAgIC8vdXNlciBzdXBwbGllZCBzaWduaW5nTmFtZSAtPiBlbmRwb2ludHMuanNvbiBpbmZlcnJlZCAoY3JlZGVudGlhbCBzY29wZSAtPiBtb2RlbCBhcm5OYW1lc3BhY2UpIC0+IG1vZGVsIHNlcnZpY2UgaWRcbiAgICAgICAgICBpbnB1dC5zaWduaW5nTmFtZSA9IGlucHV0LnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGlucHV0LnNlcnZpY2VJZDtcblxuICAgICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IG5vcm1hbGl6ZWRDcmVkcyxcbiAgICAgICAgICAgIHJlZ2lvbjogaW5wdXQuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNlcnZpY2U6IGlucHV0LnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICBjcmVkZW50aWFsczogbm9ybWFsaXplZENyZWRzLFxuICAgIHNpZ25lcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUHJvdmlkZXI8VD4oaW5wdXQ6IFQgfCBQcm92aWRlcjxUPik6IFByb3ZpZGVyPFQ+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKGlucHV0KTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIGlucHV0IGFzIFByb3ZpZGVyPFQ+O1xufVxuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar isClockSkewed = function (newServerTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000;\n};\nvar getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };\nexport function awsAuthMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var signer, _a, output, _b, _c, headers, dateHeader, serverTime;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n if (!(typeof options.signer === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, options.signer()];\n case 1:\n _a = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = options.signer;\n _e.label = 3;\n case 3:\n signer = _a;\n _b = next;\n _c = [__assign({}, args)];\n _d = {};\n return [4 /*yield*/, signer.sign(args.request, {\n signingDate: new Date(Date.now() + options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n })];\n case 4: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])];\n case 5:\n output = _e.sent();\n headers = output.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n if (dateHeader) {\n serverTime = Date.parse(dateHeader);\n if (isClockSkewed(serverTime, options.systemClockOffset)) {\n options.systemClockOffset = serverTime - Date.now();\n }\n }\n return [2 /*return*/, output];\n }\n });\n });\n };\n };\n}\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport var getAwsAuthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFhckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxhQUFxQixFQUFFLGlCQUF5QjtJQUNyRSxPQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxNQUFNO0FBQXJGLENBQXFGLENBQUM7QUFFeEYsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGlCQUF5QixJQUFLLE9BQUEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFFckcsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixPQUE4QjtJQUU5QixPQUFPLFVBQUMsSUFBb0MsRUFBRSxPQUFnQztRQUM1RSxPQUFBLFVBQWdCLElBQXFDOzs7Ozs7OzRCQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztpQ0FDOUMsQ0FBQSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFBLEVBQXBDLHdCQUFvQzs0QkFBRyxxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7OzRCQUF0QixLQUFBLFNBQXNCLENBQUE7Ozs0QkFBRyxLQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUE7Ozs0QkFBdkYsTUFBTSxLQUFpRjs0QkFDeEUsS0FBQSxJQUFJLENBQUE7K0NBQ3BCLElBQUk7OzRCQUNFLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQ0FDdkMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7b0NBQzdELGFBQWEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7b0NBQ3hDLGNBQWMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7aUNBQzNDLENBQUMsRUFBQTtnQ0FOVyxxQkFBTSxxREFFbkIsVUFBTyxHQUFFLFNBSVAsVUFDRixFQUFBOzs0QkFQSSxNQUFNLEdBQUcsU0FPYjs0QkFFTSxPQUFPLEdBQUssTUFBTSxDQUFDLFFBQWUsUUFBM0IsQ0FBNEI7NEJBQ3JDLFVBQVUsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0QsSUFBSSxVQUFVLEVBQUU7Z0NBQ1IsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQzFDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQ0FDeEQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7aUNBQ3JEOzZCQUNGOzRCQUVELHNCQUFPLE1BQU0sRUFBQzs7OztTQUNmO0lBdEJELENBc0JDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sd0JBQXdCLEdBQThCO0lBQ2pFLElBQUksRUFBRSxtQkFBbUI7SUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztJQUM5QixRQUFRLEVBQUUsT0FBTztJQUNqQixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsT0FBOEIsSUFBMEIsT0FBQSxDQUFDO0lBQ3hGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRixDQUFDLEVBSnVGLENBSXZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBGaW5hbGl6ZUhhbmRsZXIsXG4gIEZpbmFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgRmluYWxpemVIYW5kbGVyT3V0cHV0LFxuICBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQXdzQXV0aFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuY29uc3QgaXNDbG9ja1NrZXdlZCA9IChuZXdTZXJ2ZXJUaW1lOiBudW1iZXIsIHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+XG4gIE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBuZXdTZXJ2ZXJUaW1lKSA+PSAzMDAwMDA7XG5cbmNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+IG5ldyBEYXRlKERhdGUubm93KCkgKyBzeXN0ZW1DbG9ja09mZnNldCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhd3NBdXRoTWlkZGxld2FyZTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PihcbiAgb3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnXG4pOiBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+IHtcbiAgcmV0dXJuIChuZXh0OiBGaW5hbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4sIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0KTogRmluYWxpemVIYW5kbGVyPElucHV0LCBPdXRwdXQ+ID0+XG4gICAgYXN5bmMgZnVuY3Rpb24gKGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD4pOiBQcm9taXNlPEZpbmFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiB7XG4gICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICBjb25zdCBzaWduZXIgPSB0eXBlb2Ygb3B0aW9ucy5zaWduZXIgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IG9wdGlvbnMuc2lnbmVyKCkgOiBvcHRpb25zLnNpZ25lcjtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0OiBhd2FpdCBzaWduZXIuc2lnbihhcmdzLnJlcXVlc3QsIHtcbiAgICAgICAgICBzaWduaW5nRGF0ZTogbmV3IERhdGUoRGF0ZS5ub3coKSArIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgIHNpZ25pbmdSZWdpb246IGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSxcbiAgICAgICAgICBzaWduaW5nU2VydmljZTogY29udGV4dFtcInNpZ25pbmdfc2VydmljZVwiXSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgeyBoZWFkZXJzIH0gPSBvdXRwdXQucmVzcG9uc2UgYXMgYW55O1xuICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGhlYWRlcnMgJiYgKGhlYWRlcnMuZGF0ZSB8fCBoZWFkZXJzLkRhdGUpO1xuICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IERhdGUucGFyc2UoZGF0ZUhlYWRlcik7XG4gICAgICAgIGlmIChpc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUsIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgICAgb3B0aW9ucy5zeXN0ZW1DbG9ja09mZnNldCA9IHNlcnZlclRpbWUgLSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJhd3NBdXRoTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJTSUdOQVRVUkVcIiwgXCJBV1NBVVRIXCJdLFxuICByZWxhdGlvbjogXCJhZnRlclwiLFxuICB0b01pZGRsZXdhcmU6IFwicmV0cnlNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldEF3c0F1dGhQbHVnaW4gPSAob3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYXdzQXV0aE1pZGRsZXdhcmUob3B0aW9ucyksIGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdCQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELDZCQUNLLEtBQUssS0FDUixlQUFlLEVBQUUsT0FBTyxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUM5RztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdXNlciBhZ2VudCBoZWFkZXIgdGhhdCB3b3VsZCBiZSBhcHBlbmRlZCB0byBkZWZhdWx0IG9uZVxuICAgKi9cbiAgY3VzdG9tVXNlckFnZW50Pzogc3RyaW5nIHwgVXNlckFnZW50O1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgY3VzdG9tVXNlckFnZW50PzogVXNlckFnZW50O1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBVc2VyQWdlbnRJbnB1dENvbmZpZ1xuKTogVCAmIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBpbnB1dC5jdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2lucHV0LmN1c3RvbVVzZXJBZ2VudF1dIDogaW5wdXQuY3VzdG9tVXNlckFnZW50LFxuICB9O1xufVxuIl19","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFNQQUNFID0gXCIgXCI7XG5cbmV4cG9ydCBjb25zdCBVQV9FU0NBUEVfUkVHRVggPSAvW15cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC1cXC5cXF5cXF9cXGBcXHxcXH5cXGRcXHddL2c7XG4iXX0=","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var BufferingHints;\n(function (BufferingHints) {\n BufferingHints.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BufferingHints || (BufferingHints = {}));\nexport var CloudWatchLoggingOptions;\n(function (CloudWatchLoggingOptions) {\n CloudWatchLoggingOptions.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CloudWatchLoggingOptions || (CloudWatchLoggingOptions = {}));\nexport var CompressionFormat;\n(function (CompressionFormat) {\n CompressionFormat[\"GZIP\"] = \"GZIP\";\n CompressionFormat[\"HADOOP_SNAPPY\"] = \"HADOOP_SNAPPY\";\n CompressionFormat[\"SNAPPY\"] = \"Snappy\";\n CompressionFormat[\"UNCOMPRESSED\"] = \"UNCOMPRESSED\";\n CompressionFormat[\"ZIP\"] = \"ZIP\";\n})(CompressionFormat || (CompressionFormat = {}));\nexport var ConcurrentModificationException;\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\nexport var ContentEncoding;\n(function (ContentEncoding) {\n ContentEncoding[\"GZIP\"] = \"GZIP\";\n ContentEncoding[\"NONE\"] = \"NONE\";\n})(ContentEncoding || (ContentEncoding = {}));\nexport var CopyCommand;\n(function (CopyCommand) {\n CopyCommand.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyCommand || (CopyCommand = {}));\nexport var KeyType;\n(function (KeyType) {\n KeyType[\"AWS_OWNED_CMK\"] = \"AWS_OWNED_CMK\";\n KeyType[\"CUSTOMER_MANAGED_CMK\"] = \"CUSTOMER_MANAGED_CMK\";\n})(KeyType || (KeyType = {}));\nexport var DeliveryStreamEncryptionConfigurationInput;\n(function (DeliveryStreamEncryptionConfigurationInput) {\n DeliveryStreamEncryptionConfigurationInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeliveryStreamEncryptionConfigurationInput || (DeliveryStreamEncryptionConfigurationInput = {}));\nexport var ElasticsearchBufferingHints;\n(function (ElasticsearchBufferingHints) {\n ElasticsearchBufferingHints.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ElasticsearchBufferingHints || (ElasticsearchBufferingHints = {}));\nexport var ProcessorParameterName;\n(function (ProcessorParameterName) {\n ProcessorParameterName[\"BUFFER_INTERVAL_IN_SECONDS\"] = \"BufferIntervalInSeconds\";\n ProcessorParameterName[\"BUFFER_SIZE_IN_MB\"] = \"BufferSizeInMBs\";\n ProcessorParameterName[\"LAMBDA_ARN\"] = \"LambdaArn\";\n ProcessorParameterName[\"LAMBDA_NUMBER_OF_RETRIES\"] = \"NumberOfRetries\";\n ProcessorParameterName[\"ROLE_ARN\"] = \"RoleArn\";\n})(ProcessorParameterName || (ProcessorParameterName = {}));\nexport var ProcessorParameter;\n(function (ProcessorParameter) {\n ProcessorParameter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProcessorParameter || (ProcessorParameter = {}));\nexport var Processor;\n(function (Processor) {\n Processor.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Processor || (Processor = {}));\nexport var ProcessingConfiguration;\n(function (ProcessingConfiguration) {\n ProcessingConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProcessingConfiguration || (ProcessingConfiguration = {}));\nexport var ElasticsearchRetryOptions;\n(function (ElasticsearchRetryOptions) {\n ElasticsearchRetryOptions.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ElasticsearchRetryOptions || (ElasticsearchRetryOptions = {}));\nexport var KMSEncryptionConfig;\n(function (KMSEncryptionConfig) {\n KMSEncryptionConfig.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KMSEncryptionConfig || (KMSEncryptionConfig = {}));\nexport var EncryptionConfiguration;\n(function (EncryptionConfiguration) {\n EncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\nexport var S3DestinationConfiguration;\n(function (S3DestinationConfiguration) {\n S3DestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3DestinationConfiguration || (S3DestinationConfiguration = {}));\nexport var VpcConfiguration;\n(function (VpcConfiguration) {\n VpcConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(VpcConfiguration || (VpcConfiguration = {}));\nexport var ElasticsearchDestinationConfiguration;\n(function (ElasticsearchDestinationConfiguration) {\n ElasticsearchDestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ElasticsearchDestinationConfiguration || (ElasticsearchDestinationConfiguration = {}));\nexport var HiveJsonSerDe;\n(function (HiveJsonSerDe) {\n HiveJsonSerDe.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HiveJsonSerDe || (HiveJsonSerDe = {}));\nexport var OpenXJsonSerDe;\n(function (OpenXJsonSerDe) {\n OpenXJsonSerDe.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OpenXJsonSerDe || (OpenXJsonSerDe = {}));\nexport var Deserializer;\n(function (Deserializer) {\n Deserializer.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Deserializer || (Deserializer = {}));\nexport var InputFormatConfiguration;\n(function (InputFormatConfiguration) {\n InputFormatConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InputFormatConfiguration || (InputFormatConfiguration = {}));\nexport var OrcCompression;\n(function (OrcCompression) {\n OrcCompression[\"NONE\"] = \"NONE\";\n OrcCompression[\"SNAPPY\"] = \"SNAPPY\";\n OrcCompression[\"ZLIB\"] = \"ZLIB\";\n})(OrcCompression || (OrcCompression = {}));\nexport var OrcFormatVersion;\n(function (OrcFormatVersion) {\n OrcFormatVersion[\"V0_11\"] = \"V0_11\";\n OrcFormatVersion[\"V0_12\"] = \"V0_12\";\n})(OrcFormatVersion || (OrcFormatVersion = {}));\nexport var OrcSerDe;\n(function (OrcSerDe) {\n OrcSerDe.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OrcSerDe || (OrcSerDe = {}));\nexport var ParquetCompression;\n(function (ParquetCompression) {\n ParquetCompression[\"GZIP\"] = \"GZIP\";\n ParquetCompression[\"SNAPPY\"] = \"SNAPPY\";\n ParquetCompression[\"UNCOMPRESSED\"] = \"UNCOMPRESSED\";\n})(ParquetCompression || (ParquetCompression = {}));\nexport var ParquetWriterVersion;\n(function (ParquetWriterVersion) {\n ParquetWriterVersion[\"V1\"] = \"V1\";\n ParquetWriterVersion[\"V2\"] = \"V2\";\n})(ParquetWriterVersion || (ParquetWriterVersion = {}));\nexport var ParquetSerDe;\n(function (ParquetSerDe) {\n ParquetSerDe.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ParquetSerDe || (ParquetSerDe = {}));\nexport var Serializer;\n(function (Serializer) {\n Serializer.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Serializer || (Serializer = {}));\nexport var OutputFormatConfiguration;\n(function (OutputFormatConfiguration) {\n OutputFormatConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OutputFormatConfiguration || (OutputFormatConfiguration = {}));\nexport var SchemaConfiguration;\n(function (SchemaConfiguration) {\n SchemaConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SchemaConfiguration || (SchemaConfiguration = {}));\nexport var DataFormatConversionConfiguration;\n(function (DataFormatConversionConfiguration) {\n DataFormatConversionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DataFormatConversionConfiguration || (DataFormatConversionConfiguration = {}));\nexport var ExtendedS3DestinationConfiguration;\n(function (ExtendedS3DestinationConfiguration) {\n ExtendedS3DestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExtendedS3DestinationConfiguration || (ExtendedS3DestinationConfiguration = {}));\nexport var HttpEndpointBufferingHints;\n(function (HttpEndpointBufferingHints) {\n HttpEndpointBufferingHints.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HttpEndpointBufferingHints || (HttpEndpointBufferingHints = {}));\nexport var HttpEndpointConfiguration;\n(function (HttpEndpointConfiguration) {\n HttpEndpointConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Url && { Url: SENSITIVE_STRING })), (obj.AccessKey && { AccessKey: SENSITIVE_STRING }))); };\n})(HttpEndpointConfiguration || (HttpEndpointConfiguration = {}));\nexport var HttpEndpointCommonAttribute;\n(function (HttpEndpointCommonAttribute) {\n HttpEndpointCommonAttribute.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.AttributeName && { AttributeName: SENSITIVE_STRING })), (obj.AttributeValue && { AttributeValue: SENSITIVE_STRING }))); };\n})(HttpEndpointCommonAttribute || (HttpEndpointCommonAttribute = {}));\nexport var HttpEndpointRequestConfiguration;\n(function (HttpEndpointRequestConfiguration) {\n HttpEndpointRequestConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.CommonAttributes && {\n CommonAttributes: obj.CommonAttributes.map(function (item) { return HttpEndpointCommonAttribute.filterSensitiveLog(item); }),\n }))); };\n})(HttpEndpointRequestConfiguration || (HttpEndpointRequestConfiguration = {}));\nexport var HttpEndpointRetryOptions;\n(function (HttpEndpointRetryOptions) {\n HttpEndpointRetryOptions.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HttpEndpointRetryOptions || (HttpEndpointRetryOptions = {}));\nexport var HttpEndpointDestinationConfiguration;\n(function (HttpEndpointDestinationConfiguration) {\n HttpEndpointDestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.EndpointConfiguration && {\n EndpointConfiguration: HttpEndpointConfiguration.filterSensitiveLog(obj.EndpointConfiguration),\n })), (obj.RequestConfiguration && {\n RequestConfiguration: HttpEndpointRequestConfiguration.filterSensitiveLog(obj.RequestConfiguration),\n }))); };\n})(HttpEndpointDestinationConfiguration || (HttpEndpointDestinationConfiguration = {}));\nexport var KinesisStreamSourceConfiguration;\n(function (KinesisStreamSourceConfiguration) {\n KinesisStreamSourceConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KinesisStreamSourceConfiguration || (KinesisStreamSourceConfiguration = {}));\nexport var RedshiftRetryOptions;\n(function (RedshiftRetryOptions) {\n RedshiftRetryOptions.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RedshiftRetryOptions || (RedshiftRetryOptions = {}));\nexport var RedshiftDestinationConfiguration;\n(function (RedshiftDestinationConfiguration) {\n RedshiftDestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Username && { Username: SENSITIVE_STRING })), (obj.Password && { Password: SENSITIVE_STRING }))); };\n})(RedshiftDestinationConfiguration || (RedshiftDestinationConfiguration = {}));\nexport var SplunkRetryOptions;\n(function (SplunkRetryOptions) {\n SplunkRetryOptions.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SplunkRetryOptions || (SplunkRetryOptions = {}));\nexport var SplunkDestinationConfiguration;\n(function (SplunkDestinationConfiguration) {\n SplunkDestinationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SplunkDestinationConfiguration || (SplunkDestinationConfiguration = {}));\nexport var Tag;\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tag || (Tag = {}));\nexport var CreateDeliveryStreamInput;\n(function (CreateDeliveryStreamInput) {\n CreateDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.RedshiftDestinationConfiguration && {\n RedshiftDestinationConfiguration: RedshiftDestinationConfiguration.filterSensitiveLog(obj.RedshiftDestinationConfiguration),\n })), (obj.HttpEndpointDestinationConfiguration && {\n HttpEndpointDestinationConfiguration: HttpEndpointDestinationConfiguration.filterSensitiveLog(obj.HttpEndpointDestinationConfiguration),\n }))); };\n})(CreateDeliveryStreamInput || (CreateDeliveryStreamInput = {}));\nexport var CreateDeliveryStreamOutput;\n(function (CreateDeliveryStreamOutput) {\n CreateDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateDeliveryStreamOutput || (CreateDeliveryStreamOutput = {}));\nexport var InvalidArgumentException;\n(function (InvalidArgumentException) {\n InvalidArgumentException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidArgumentException || (InvalidArgumentException = {}));\nexport var InvalidKMSResourceException;\n(function (InvalidKMSResourceException) {\n InvalidKMSResourceException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidKMSResourceException || (InvalidKMSResourceException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var ResourceInUseException;\n(function (ResourceInUseException) {\n ResourceInUseException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceInUseException || (ResourceInUseException = {}));\nexport var DeleteDeliveryStreamInput;\n(function (DeleteDeliveryStreamInput) {\n DeleteDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteDeliveryStreamInput || (DeleteDeliveryStreamInput = {}));\nexport var DeleteDeliveryStreamOutput;\n(function (DeleteDeliveryStreamOutput) {\n DeleteDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteDeliveryStreamOutput || (DeleteDeliveryStreamOutput = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var DeliveryStreamFailureType;\n(function (DeliveryStreamFailureType) {\n DeliveryStreamFailureType[\"CREATE_ENI_FAILED\"] = \"CREATE_ENI_FAILED\";\n DeliveryStreamFailureType[\"CREATE_KMS_GRANT_FAILED\"] = \"CREATE_KMS_GRANT_FAILED\";\n DeliveryStreamFailureType[\"DELETE_ENI_FAILED\"] = \"DELETE_ENI_FAILED\";\n DeliveryStreamFailureType[\"DISABLED_KMS_KEY\"] = \"DISABLED_KMS_KEY\";\n DeliveryStreamFailureType[\"ENI_ACCESS_DENIED\"] = \"ENI_ACCESS_DENIED\";\n DeliveryStreamFailureType[\"INVALID_KMS_KEY\"] = \"INVALID_KMS_KEY\";\n DeliveryStreamFailureType[\"KMS_ACCESS_DENIED\"] = \"KMS_ACCESS_DENIED\";\n DeliveryStreamFailureType[\"KMS_KEY_NOT_FOUND\"] = \"KMS_KEY_NOT_FOUND\";\n DeliveryStreamFailureType[\"KMS_OPT_IN_REQUIRED\"] = \"KMS_OPT_IN_REQUIRED\";\n DeliveryStreamFailureType[\"RETIRE_KMS_GRANT_FAILED\"] = \"RETIRE_KMS_GRANT_FAILED\";\n DeliveryStreamFailureType[\"SECURITY_GROUP_ACCESS_DENIED\"] = \"SECURITY_GROUP_ACCESS_DENIED\";\n DeliveryStreamFailureType[\"SECURITY_GROUP_NOT_FOUND\"] = \"SECURITY_GROUP_NOT_FOUND\";\n DeliveryStreamFailureType[\"SUBNET_ACCESS_DENIED\"] = \"SUBNET_ACCESS_DENIED\";\n DeliveryStreamFailureType[\"SUBNET_NOT_FOUND\"] = \"SUBNET_NOT_FOUND\";\n DeliveryStreamFailureType[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n})(DeliveryStreamFailureType || (DeliveryStreamFailureType = {}));\nexport var FailureDescription;\n(function (FailureDescription) {\n FailureDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FailureDescription || (FailureDescription = {}));\nexport var DeliveryStreamEncryptionStatus;\n(function (DeliveryStreamEncryptionStatus) {\n DeliveryStreamEncryptionStatus[\"DISABLED\"] = \"DISABLED\";\n DeliveryStreamEncryptionStatus[\"DISABLING\"] = \"DISABLING\";\n DeliveryStreamEncryptionStatus[\"DISABLING_FAILED\"] = \"DISABLING_FAILED\";\n DeliveryStreamEncryptionStatus[\"ENABLED\"] = \"ENABLED\";\n DeliveryStreamEncryptionStatus[\"ENABLING\"] = \"ENABLING\";\n DeliveryStreamEncryptionStatus[\"ENABLING_FAILED\"] = \"ENABLING_FAILED\";\n})(DeliveryStreamEncryptionStatus || (DeliveryStreamEncryptionStatus = {}));\nexport var DeliveryStreamEncryptionConfiguration;\n(function (DeliveryStreamEncryptionConfiguration) {\n DeliveryStreamEncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeliveryStreamEncryptionConfiguration || (DeliveryStreamEncryptionConfiguration = {}));\nexport var DeliveryStreamStatus;\n(function (DeliveryStreamStatus) {\n DeliveryStreamStatus[\"ACTIVE\"] = \"ACTIVE\";\n DeliveryStreamStatus[\"CREATING\"] = \"CREATING\";\n DeliveryStreamStatus[\"CREATING_FAILED\"] = \"CREATING_FAILED\";\n DeliveryStreamStatus[\"DELETING\"] = \"DELETING\";\n DeliveryStreamStatus[\"DELETING_FAILED\"] = \"DELETING_FAILED\";\n})(DeliveryStreamStatus || (DeliveryStreamStatus = {}));\nexport var S3DestinationDescription;\n(function (S3DestinationDescription) {\n S3DestinationDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3DestinationDescription || (S3DestinationDescription = {}));\nexport var VpcConfigurationDescription;\n(function (VpcConfigurationDescription) {\n VpcConfigurationDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(VpcConfigurationDescription || (VpcConfigurationDescription = {}));\nexport var ElasticsearchDestinationDescription;\n(function (ElasticsearchDestinationDescription) {\n ElasticsearchDestinationDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ElasticsearchDestinationDescription || (ElasticsearchDestinationDescription = {}));\nexport var ExtendedS3DestinationDescription;\n(function (ExtendedS3DestinationDescription) {\n ExtendedS3DestinationDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExtendedS3DestinationDescription || (ExtendedS3DestinationDescription = {}));\nexport var HttpEndpointDescription;\n(function (HttpEndpointDescription) {\n HttpEndpointDescription.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Url && { Url: SENSITIVE_STRING }))); };\n})(HttpEndpointDescription || (HttpEndpointDescription = {}));\nexport var HttpEndpointDestinationDescription;\n(function (HttpEndpointDestinationDescription) {\n HttpEndpointDestinationDescription.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.EndpointConfiguration && {\n EndpointConfiguration: HttpEndpointDescription.filterSensitiveLog(obj.EndpointConfiguration),\n })), (obj.RequestConfiguration && {\n RequestConfiguration: HttpEndpointRequestConfiguration.filterSensitiveLog(obj.RequestConfiguration),\n }))); };\n})(HttpEndpointDestinationDescription || (HttpEndpointDestinationDescription = {}));\nexport var RedshiftDestinationDescription;\n(function (RedshiftDestinationDescription) {\n RedshiftDestinationDescription.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Username && { Username: SENSITIVE_STRING }))); };\n})(RedshiftDestinationDescription || (RedshiftDestinationDescription = {}));\nexport var SplunkDestinationDescription;\n(function (SplunkDestinationDescription) {\n SplunkDestinationDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SplunkDestinationDescription || (SplunkDestinationDescription = {}));\nexport var DestinationDescription;\n(function (DestinationDescription) {\n DestinationDescription.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.RedshiftDestinationDescription && {\n RedshiftDestinationDescription: RedshiftDestinationDescription.filterSensitiveLog(obj.RedshiftDestinationDescription),\n })), (obj.HttpEndpointDestinationDescription && {\n HttpEndpointDestinationDescription: HttpEndpointDestinationDescription.filterSensitiveLog(obj.HttpEndpointDestinationDescription),\n }))); };\n})(DestinationDescription || (DestinationDescription = {}));\nexport var KinesisStreamSourceDescription;\n(function (KinesisStreamSourceDescription) {\n KinesisStreamSourceDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(KinesisStreamSourceDescription || (KinesisStreamSourceDescription = {}));\nexport var SourceDescription;\n(function (SourceDescription) {\n SourceDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SourceDescription || (SourceDescription = {}));\nexport var DeliveryStreamDescription;\n(function (DeliveryStreamDescription) {\n DeliveryStreamDescription.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Destinations && {\n Destinations: obj.Destinations.map(function (item) { return DestinationDescription.filterSensitiveLog(item); }),\n }))); };\n})(DeliveryStreamDescription || (DeliveryStreamDescription = {}));\nexport var DescribeDeliveryStreamInput;\n(function (DescribeDeliveryStreamInput) {\n DescribeDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeDeliveryStreamInput || (DescribeDeliveryStreamInput = {}));\nexport var DescribeDeliveryStreamOutput;\n(function (DescribeDeliveryStreamOutput) {\n DescribeDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.DeliveryStreamDescription && {\n DeliveryStreamDescription: DeliveryStreamDescription.filterSensitiveLog(obj.DeliveryStreamDescription),\n }))); };\n})(DescribeDeliveryStreamOutput || (DescribeDeliveryStreamOutput = {}));\nexport var S3DestinationUpdate;\n(function (S3DestinationUpdate) {\n S3DestinationUpdate.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3DestinationUpdate || (S3DestinationUpdate = {}));\nexport var ElasticsearchDestinationUpdate;\n(function (ElasticsearchDestinationUpdate) {\n ElasticsearchDestinationUpdate.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ElasticsearchDestinationUpdate || (ElasticsearchDestinationUpdate = {}));\nexport var ExtendedS3DestinationUpdate;\n(function (ExtendedS3DestinationUpdate) {\n ExtendedS3DestinationUpdate.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExtendedS3DestinationUpdate || (ExtendedS3DestinationUpdate = {}));\nexport var ListDeliveryStreamsInput;\n(function (ListDeliveryStreamsInput) {\n ListDeliveryStreamsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListDeliveryStreamsInput || (ListDeliveryStreamsInput = {}));\nexport var ListDeliveryStreamsOutput;\n(function (ListDeliveryStreamsOutput) {\n ListDeliveryStreamsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListDeliveryStreamsOutput || (ListDeliveryStreamsOutput = {}));\nexport var ListTagsForDeliveryStreamInput;\n(function (ListTagsForDeliveryStreamInput) {\n ListTagsForDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForDeliveryStreamInput || (ListTagsForDeliveryStreamInput = {}));\nexport var ListTagsForDeliveryStreamOutput;\n(function (ListTagsForDeliveryStreamOutput) {\n ListTagsForDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForDeliveryStreamOutput || (ListTagsForDeliveryStreamOutput = {}));\nexport var _Record;\n(function (_Record) {\n _Record.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Record || (_Record = {}));\nexport var PutRecordInput;\n(function (PutRecordInput) {\n PutRecordInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordInput || (PutRecordInput = {}));\nexport var PutRecordOutput;\n(function (PutRecordOutput) {\n PutRecordOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordOutput || (PutRecordOutput = {}));\nexport var ServiceUnavailableException;\n(function (ServiceUnavailableException) {\n ServiceUnavailableException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ServiceUnavailableException || (ServiceUnavailableException = {}));\nexport var PutRecordBatchInput;\n(function (PutRecordBatchInput) {\n PutRecordBatchInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordBatchInput || (PutRecordBatchInput = {}));\nexport var PutRecordBatchResponseEntry;\n(function (PutRecordBatchResponseEntry) {\n PutRecordBatchResponseEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordBatchResponseEntry || (PutRecordBatchResponseEntry = {}));\nexport var PutRecordBatchOutput;\n(function (PutRecordBatchOutput) {\n PutRecordBatchOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRecordBatchOutput || (PutRecordBatchOutput = {}));\nexport var StartDeliveryStreamEncryptionInput;\n(function (StartDeliveryStreamEncryptionInput) {\n StartDeliveryStreamEncryptionInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartDeliveryStreamEncryptionInput || (StartDeliveryStreamEncryptionInput = {}));\nexport var StartDeliveryStreamEncryptionOutput;\n(function (StartDeliveryStreamEncryptionOutput) {\n StartDeliveryStreamEncryptionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartDeliveryStreamEncryptionOutput || (StartDeliveryStreamEncryptionOutput = {}));\nexport var StopDeliveryStreamEncryptionInput;\n(function (StopDeliveryStreamEncryptionInput) {\n StopDeliveryStreamEncryptionInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StopDeliveryStreamEncryptionInput || (StopDeliveryStreamEncryptionInput = {}));\nexport var StopDeliveryStreamEncryptionOutput;\n(function (StopDeliveryStreamEncryptionOutput) {\n StopDeliveryStreamEncryptionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StopDeliveryStreamEncryptionOutput || (StopDeliveryStreamEncryptionOutput = {}));\nexport var TagDeliveryStreamInput;\n(function (TagDeliveryStreamInput) {\n TagDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagDeliveryStreamInput || (TagDeliveryStreamInput = {}));\nexport var TagDeliveryStreamOutput;\n(function (TagDeliveryStreamOutput) {\n TagDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagDeliveryStreamOutput || (TagDeliveryStreamOutput = {}));\nexport var UntagDeliveryStreamInput;\n(function (UntagDeliveryStreamInput) {\n UntagDeliveryStreamInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagDeliveryStreamInput || (UntagDeliveryStreamInput = {}));\nexport var UntagDeliveryStreamOutput;\n(function (UntagDeliveryStreamOutput) {\n UntagDeliveryStreamOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagDeliveryStreamOutput || (UntagDeliveryStreamOutput = {}));\nexport var HttpEndpointDestinationUpdate;\n(function (HttpEndpointDestinationUpdate) {\n HttpEndpointDestinationUpdate.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.EndpointConfiguration && {\n EndpointConfiguration: HttpEndpointConfiguration.filterSensitiveLog(obj.EndpointConfiguration),\n })), (obj.RequestConfiguration && {\n RequestConfiguration: HttpEndpointRequestConfiguration.filterSensitiveLog(obj.RequestConfiguration),\n }))); };\n})(HttpEndpointDestinationUpdate || (HttpEndpointDestinationUpdate = {}));\nexport var RedshiftDestinationUpdate;\n(function (RedshiftDestinationUpdate) {\n RedshiftDestinationUpdate.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.Username && { Username: SENSITIVE_STRING })), (obj.Password && { Password: SENSITIVE_STRING }))); };\n})(RedshiftDestinationUpdate || (RedshiftDestinationUpdate = {}));\nexport var SplunkDestinationUpdate;\n(function (SplunkDestinationUpdate) {\n SplunkDestinationUpdate.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SplunkDestinationUpdate || (SplunkDestinationUpdate = {}));\nexport var UpdateDestinationInput;\n(function (UpdateDestinationInput) {\n UpdateDestinationInput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.RedshiftDestinationUpdate && {\n RedshiftDestinationUpdate: RedshiftDestinationUpdate.filterSensitiveLog(obj.RedshiftDestinationUpdate),\n })), (obj.HttpEndpointDestinationUpdate && {\n HttpEndpointDestinationUpdate: HttpEndpointDestinationUpdate.filterSensitiveLog(obj.HttpEndpointDestinationUpdate),\n }))); };\n})(UpdateDestinationInput || (UpdateDestinationInput = {}));\nexport var UpdateDestinationOutput;\n(function (UpdateDestinationOutput) {\n UpdateDestinationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UpdateDestinationOutput || (UpdateDestinationOutput = {}));\n//# sourceMappingURL=models_0.js.map","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\nexport var userAgentMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2 /*return*/, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4 /*yield*/, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n // Set value to AWS-specific user agent header\n headers[X_AMZ_USER_AGENT] = __spread(defaultUserAgent, userAgent, customUserAgent).join(SPACE);\n normalUAValue = __spread(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); }), customUserAgent).join(SPACE);\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsT0FBZ0MsSUFBSyxPQUFBLFVBQ3ZFLElBQTRCLEVBQzVCLE9BQWdDLElBQ0wsT0FBQSxVQUFPLElBQWdDOzs7Ozs7Z0JBQzFELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztnQkFDaEQsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUN0QixTQUFTLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUywwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O2dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNsRixlQUFlLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDN0UsOENBQThDO2dCQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFJLGdCQUFnQixFQUFLLFNBQVMsRUFBSyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRixhQUFhLEdBQUcsU0FDakIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUNwRSxlQUFlLEVBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLGFBQWEsRUFBRTtvQkFDbEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFJLGFBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2lCQUN2RztnQkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQXRCNEIsQ0FzQjVCLEVBekJ3RSxDQXlCeEUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQThCO1FBQTlCLEtBQUEsYUFBOEIsRUFBN0IsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUFBO0lBQ3JDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBQzFGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDL0I7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDN0IsTUFBTSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUF2QixDQUF1QixDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxVQUFDLElBQUksV0FBSyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLElBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBMkM7SUFDbkYsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUMsTUFBK0IsSUFBMEIsT0FBQSxDQUFDO0lBQzNGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRixDQUFDLEVBSjBGLENBSTFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBBYnNvbHV0ZUxvY2F0aW9uLFxuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgVXNlckFnZW50UGFpcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IFNQQUNFLCBVQV9FU0NBUEVfUkVHRVgsIFVTRVJfQUdFTlQsIFhfQU1aX1VTRVJfQUdFTlQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBCdWlsZCB1c2VyIGFnZW50IGhlYWRlciBzZWN0aW9ucyBmcm9tOlxuICogMS4gcnVudGltZS1zcGVjaWZpYyBkZWZhdWx0IHVzZXIgYWdlbnQgcHJvdmlkZXI7XG4gKiAyLiBjdXN0b20gdXNlciBhZ2VudCBmcm9tIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudCBjb25maWc7XG4gKiAzLiBoYW5kbGVyIGV4ZWN1dGlvbiBjb250ZXh0IHNldCBieSBpbnRlcm5hbCBTREsgY29tcG9uZW50cztcbiAqIFRoZSBidWlsdCB1c2VyIGFnZW50IHdpbGwgYmUgc2V0IHRvIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXIgZm9yIEFMTCB0aGVcbiAqIHJ1bnRpbWVzLlxuICogUGxlYXNlIG5vdGUgdGhhdCBhbnkgb3ZlcnJpZGUgdG8gdGhlIGB1c2VyLWFnZW50YCBvciBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyXG4gKiBpbiB0aGUgSFRUUCByZXF1ZXN0IGlzIGRpc2NvdXJhZ2VkLiBQbGVhc2UgdXNlIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudFxuICogY29uZmlnIG9yIG1pZGRsZXdhcmUgc2V0dGluZyB0aGUgYHVzZXJBZ2VudGAgY29udGV4dCB0byBnZW5lcmF0ZSBkZXNpcmVkIHVzZXJcbiAqIGFnZW50LlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZykgPT4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgLy8gU2V0IHZhbHVlIHRvIEFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlclxuICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XS5qb2luKFNQQUNFKTtcbiAgLy8gR2V0IHZhbHVlIHRvIGJlIHNlbnQgd2l0aCBub24tQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyLlxuICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICBdLmpvaW4oU1BBQ0UpO1xuICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIiAmJiBub3JtYWxVQVZhbHVlKSB7XG4gICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IGhlYWRlcnNbVVNFUl9BR0VOVF0gPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YCA6IG5vcm1hbFVBVmFsdWU7XG4gIH1cblxuICByZXR1cm4gbmV4dCh7XG4gICAgLi4uYXJncyxcbiAgICByZXF1ZXN0LFxuICB9KTtcbn07XG5cbi8qKlxuICogRXNjYXBlIHRoZSBlYWNoIHBhaXIgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0IGFuZCBqb2luIHRoZSBwYWlyIHdpdGggcGF0dGVybiBgbmFtZS92ZXJzaW9uYC5cbiAqIFVzZXIgYWdlbnQgbmFtZSBtYXkgaW5jbHVkZSBwcmVmaXggbGlrZSBgbWQvYCwgYGFwaS9gLCBgb3MvYCBldGMuLCB3ZSBzaG91bGQgbm90IGVzY2FwZSB0aGUgYC9gIGFmdGVyIHRoZSBwcmVmaXguXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAoW25hbWUsIHZlcnNpb25dOiBVc2VyQWdlbnRQYWlyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoXCIvXCIpO1xuICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7IC8vIElmIG5vIHByZWZpeCwgcHJlZml4IGlzIGp1c3QgXCJcIlxuICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbT8ucmVwbGFjZShVQV9FU0NBUEVfUkVHRVgsIFwiX1wiKSlcbiAgICAuam9pbihcIi9cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge1xuICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJidWlsZFwiLFxuICBwcmlvcml0eTogXCJsb3dcIixcbiAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { resolveEventStreamSerdeConfig, } from \"@aws-sdk/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n * Amazon Kinesis Data Streams Service API Reference\n *

Amazon Kinesis Data Streams is a managed service that scales elastically for\n * real-time processing of streaming big data.

\n */\nvar KinesisClient = /** @class */ (function (_super) {\n __extends(KinesisClient, _super);\n function KinesisClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n var _config_7 = resolveEventStreamSerdeConfig(_config_6);\n _this = _super.call(this, _config_7) || this;\n _this.config = _config_7;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n KinesisClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return KinesisClient;\n}(__Client));\nexport { KinesisClient };\n//# sourceMappingURL=KinesisClient.js.map","import { __assign } from \"tslib\";\nexport var resolveEventStreamSerdeConfig = function (input) { return (__assign(__assign({}, input), { eventStreamMarshaller: input.eventStreamSerdeProvider(input) })); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1TZXJkZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudFN0cmVhbVNlcmRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBRyxVQUMzQyxLQUEyRCxJQUNwQixPQUFBLHVCQUNwQyxLQUFLLEtBQ1IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUM1RCxFQUh1QyxDQUd2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyLCBFdmVudFN0cmVhbVNlcmRlUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlSW5wdXRDb25maWcge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlUmVzb2x2ZWRDb25maWcge1xuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IEV2ZW50U3RyZWFtTWFyc2hhbGxlcjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUV2ZW50U3RyZWFtU2VyZGVDb25maWcgPSA8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgRXZlbnRTdHJlYW1TZXJkZUlucHV0Q29uZmlnXG4pOiBUICYgRXZlbnRTdHJlYW1TZXJkZVJlc29sdmVkQ29uZmlnID0+ICh7XG4gIC4uLmlucHV0LFxuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IGlucHV0LmV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcihpbnB1dCksXG59KTtcbiJdfQ==","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { ConsoleLogger as Logger, Credentials, AnalyticsAction, } from '@aws-amplify/core';\nimport { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';\nimport { fromUtf8 } from '@aws-sdk/util-utf8-browser';\nimport { getAnalyticsUserAgent } from '../utils/UserAgent';\nvar logger = new Logger('AWSKinesisProvider');\n// events buffer\nvar BUFFER_SIZE = 1000;\nvar FLUSH_SIZE = 100;\nvar FLUSH_INTERVAL = 5 * 1000; // 5s\nvar RESEND_LIMIT = 5;\nvar AWSKinesisProvider = /** @class */ (function () {\n function AWSKinesisProvider(config) {\n this._buffer = [];\n this._config = config || {};\n this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE;\n this._config.flushSize = this._config.flushSize || FLUSH_SIZE;\n this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;\n this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT;\n this._setupTimer();\n }\n AWSKinesisProvider.prototype._setupTimer = function () {\n var _this = this;\n if (this._timer) {\n clearInterval(this._timer);\n }\n var _a = this._config, flushSize = _a.flushSize, flushInterval = _a.flushInterval;\n this._timer = setInterval(function () {\n var size = _this._buffer.length < flushSize ? _this._buffer.length : flushSize;\n var events = [];\n for (var i = 0; i < size; i += 1) {\n var params = _this._buffer.shift();\n events.push(params);\n }\n _this._sendFromBuffer(events);\n }, flushInterval);\n };\n /**\n * get the category of the plugin\n */\n AWSKinesisProvider.prototype.getCategory = function () {\n return 'Analytics';\n };\n /**\n * get provider name of the plugin\n */\n AWSKinesisProvider.prototype.getProviderName = function () {\n return 'AWSKinesis';\n };\n /**\n * configure the plugin\n * @param {Object} config - configuration\n */\n AWSKinesisProvider.prototype.configure = function (config) {\n logger.debug('configure Analytics', config);\n var conf = config || {};\n this._config = Object.assign({}, this._config, conf);\n this._setupTimer();\n return this._config;\n };\n /**\n * record an event\n * @param {Object} params - the params of an event\n */\n AWSKinesisProvider.prototype.record = function (params) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var credentials;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._getCredentials()];\n case 1:\n credentials = _b.sent();\n if (!credentials)\n return [2 /*return*/, Promise.resolve(false)];\n Object.assign(params, { config: this._config, credentials: credentials });\n if ((_a = params.event) === null || _a === void 0 ? void 0 : _a.immediate) {\n this._sendEvents([params]);\n return [2 /*return*/, Promise.resolve(true)];\n }\n else {\n return [2 /*return*/, this._putToBuffer(params)];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSKinesisProvider.prototype.updateEndpoint = function () {\n logger.debug('updateEndpoint is not implemented in Kinesis provider');\n return Promise.resolve(true);\n };\n /**\n * @private\n * @param params - params for the event recording\n * Put events into buffer\n */\n AWSKinesisProvider.prototype._putToBuffer = function (params) {\n if (this._buffer.length < BUFFER_SIZE) {\n this._buffer.push(params);\n return Promise.resolve(true);\n }\n else {\n logger.debug('exceed analytics events buffer size');\n return Promise.reject(false);\n }\n };\n AWSKinesisProvider.prototype._sendFromBuffer = function (events) {\n var _this = this;\n // collapse events by credentials\n // events = [ {params} ]\n var eventsGroups = [];\n var preCred = null;\n var group = [];\n for (var i = 0; i < events.length; i += 1) {\n var cred = events[i].credentials;\n if (i === 0) {\n group.push(events[i]);\n preCred = cred;\n }\n else {\n if (cred.sessionToken === preCred.sessionToken &&\n cred.identityId === preCred.identityId) {\n logger.debug('no change for cred, put event in the same group');\n group.push(events[i]);\n }\n else {\n eventsGroups.push(group);\n group = [];\n group.push(events[i]);\n preCred = cred;\n }\n }\n }\n eventsGroups.push(group);\n eventsGroups.map(function (evts) {\n _this._sendEvents(evts);\n });\n };\n AWSKinesisProvider.prototype._sendEvents = function (group) {\n var _this = this;\n if (group.length === 0) {\n return;\n }\n var _a = group[0], config = _a.config, credentials = _a.credentials;\n var initClients = this._init(config, credentials);\n if (!initClients)\n return false;\n var records = {};\n group.map(function (params) {\n // spit by streamName\n var evt = params.event;\n var streamName = evt.streamName;\n if (records[streamName] === undefined) {\n records[streamName] = [];\n }\n var bufferData = evt.data && typeof evt.data !== 'string'\n ? JSON.stringify(evt.data)\n : evt.data;\n var Data = fromUtf8(bufferData);\n var PartitionKey = evt.partitionKey || 'partition-' + credentials.identityId;\n var record = { Data: Data, PartitionKey: PartitionKey };\n records[streamName].push(record);\n });\n Object.keys(records).map(function (streamName) { return __awaiter(_this, void 0, void 0, function () {\n var command, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('putting records to kinesis with records', records[streamName]);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n command = new PutRecordsCommand({\n Records: records[streamName],\n StreamName: streamName,\n });\n return [4 /*yield*/, this._kinesis.send(command)];\n case 2:\n _a.sent();\n logger.debug('Upload records to stream', streamName);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n logger.debug('Failed to upload records to Kinesis', err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); });\n };\n AWSKinesisProvider.prototype._init = function (config, credentials) {\n logger.debug('init clients');\n if (this._kinesis &&\n this._config.credentials &&\n this._config.credentials.sessionToken === credentials.sessionToken &&\n this._config.credentials.identityId === credentials.identityId) {\n logger.debug('no change for analytics config, directly return from init');\n return true;\n }\n this._config.credentials = credentials;\n var region = config.region, endpoint = config.endpoint;\n return this._initKinesis(region, endpoint, credentials);\n };\n AWSKinesisProvider.prototype._initKinesis = function (region, endpoint, credentials) {\n logger.debug('initialize kinesis with credentials', credentials);\n this._kinesis = new KinesisClient({\n region: region,\n credentials: credentials,\n customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),\n endpoint: endpoint,\n });\n return true;\n };\n /**\n * @private\n * check if current credentials exists\n */\n AWSKinesisProvider.prototype._getCredentials = function () {\n var _this = this;\n return Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return null;\n logger.debug('set credentials for analytics', _this._config.credentials);\n return Credentials.shear(credentials);\n })\n .catch(function (err) {\n logger.debug('ensure credentials error', err);\n return null;\n });\n };\n return AWSKinesisProvider;\n}());\nexport { AWSKinesisProvider };\n//# sourceMappingURL=AWSKinesisProvider.js.map","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nexport var serializeAws_json1_1CreateDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.CreateDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1CreateDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.DeleteDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.DescribeDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListDeliveryStreamsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.ListDeliveryStreams\",\n };\n body = JSON.stringify(serializeAws_json1_1ListDeliveryStreamsInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListTagsForDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.ListTagsForDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1ListTagsForDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1PutRecordCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.PutRecord\",\n };\n body = JSON.stringify(serializeAws_json1_1PutRecordInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1PutRecordBatchCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.PutRecordBatch\",\n };\n body = JSON.stringify(serializeAws_json1_1PutRecordBatchInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1StartDeliveryStreamEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.StartDeliveryStreamEncryption\",\n };\n body = JSON.stringify(serializeAws_json1_1StartDeliveryStreamEncryptionInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1StopDeliveryStreamEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.StopDeliveryStreamEncryption\",\n };\n body = JSON.stringify(serializeAws_json1_1StopDeliveryStreamEncryptionInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1TagDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.TagDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1TagDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UntagDeliveryStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.UntagDeliveryStream\",\n };\n body = JSON.stringify(serializeAws_json1_1UntagDeliveryStreamInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UpdateDestinationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"Firehose_20150804.UpdateDestination\",\n };\n body = JSON.stringify(serializeAws_json1_1UpdateDestinationInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var deserializeAws_json1_1CreateDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1CreateDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1CreateDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1CreateDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 6];\n case \"ResourceInUseException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidKMSResourceExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DeleteDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ResourceInUseException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 2];\n case \"ResourceNotFoundException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DescribeDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ResourceNotFoundException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListDeliveryStreamsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListDeliveryStreamsCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListDeliveryStreamsOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListDeliveryStreamsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListTagsForDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListTagsForDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListTagsForDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListTagsForDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, parsedBody, message;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _a = [__assign({}, output)];\n _f = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_f.body = _g.sent(), _f)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"LimitExceededException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 4];\n case \"ResourceNotFoundException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 8:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _g.label = 9;\n case 9:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1PutRecordCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1PutRecordCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1PutRecordOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1PutRecordCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"ResourceNotFoundException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 6];\n case \"ServiceUnavailableException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ServiceUnavailableException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidKMSResourceExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1PutRecordBatchCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1PutRecordBatchCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1PutRecordBatchOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1PutRecordBatchCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"ResourceNotFoundException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 6];\n case \"ServiceUnavailableException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ServiceUnavailableException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidKMSResourceExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1StartDeliveryStreamEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1StartDeliveryStreamEncryptionCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1StartDeliveryStreamEncryptionOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1StartDeliveryStreamEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#InvalidKMSResourceException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 6];\n case \"ResourceInUseException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidKMSResourceExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1StopDeliveryStreamEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1StopDeliveryStreamEncryptionCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1StopDeliveryStreamEncryptionOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1StopDeliveryStreamEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"LimitExceededException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 4];\n case \"ResourceInUseException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1TagDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1TagDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1TagDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1TagDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"LimitExceededException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 4];\n case \"ResourceInUseException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UntagDeliveryStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UntagDeliveryStreamCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UntagDeliveryStreamOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UntagDeliveryStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidArgumentException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 2];\n case \"LimitExceededException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#LimitExceededException\": return [3 /*break*/, 4];\n case \"ResourceInUseException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UpdateDestinationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UpdateDestinationCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UpdateDestinationOutput(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UpdateDestinationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, parsedBody, message;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = [__assign({}, output)];\n _g = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_g.body = _h.sent(), _g)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.firehose#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InvalidArgumentException\": return [3 /*break*/, 4];\n case \"com.amazonaws.firehose#InvalidArgumentException\": return [3 /*break*/, 4];\n case \"ResourceInUseException\": return [3 /*break*/, 6];\n case \"com.amazonaws.firehose#ResourceInUseException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.firehose#ResourceNotFoundException\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceInUseExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_h.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 11];\n case 10:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _h.label = 11;\n case 11:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_json1_1ConcurrentModificationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context);\n contents = __assign({ name: \"ConcurrentModificationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidArgumentExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidArgumentException(body, context);\n contents = __assign({ name: \"InvalidArgumentException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidKMSResourceExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidKMSResourceException(body, context);\n contents = __assign({ name: \"InvalidKMSResourceException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1LimitExceededExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n contents = __assign({ name: \"LimitExceededException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceInUseExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceInUseException(body, context);\n contents = __assign({ name: \"ResourceInUseException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n contents = __assign({ name: \"ResourceNotFoundException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ServiceUnavailableExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ServiceUnavailableException(body, context);\n contents = __assign({ name: \"ServiceUnavailableException\", $fault: \"server\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_json1_1BufferingHints = function (input, context) {\n return __assign(__assign({}, (input.IntervalInSeconds !== undefined &&\n input.IntervalInSeconds !== null && { IntervalInSeconds: input.IntervalInSeconds })), (input.SizeInMBs !== undefined && input.SizeInMBs !== null && { SizeInMBs: input.SizeInMBs }));\n};\nvar serializeAws_json1_1CloudWatchLoggingOptions = function (input, context) {\n return __assign(__assign(__assign({}, (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.LogGroupName !== undefined && input.LogGroupName !== null && { LogGroupName: input.LogGroupName })), (input.LogStreamName !== undefined && input.LogStreamName !== null && { LogStreamName: input.LogStreamName }));\n};\nvar serializeAws_json1_1ColumnToJsonKeyMappings = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1CopyCommand = function (input, context) {\n return __assign(__assign(__assign({}, (input.CopyOptions !== undefined && input.CopyOptions !== null && { CopyOptions: input.CopyOptions })), (input.DataTableColumns !== undefined &&\n input.DataTableColumns !== null && { DataTableColumns: input.DataTableColumns })), (input.DataTableName !== undefined && input.DataTableName !== null && { DataTableName: input.DataTableName }));\n};\nvar serializeAws_json1_1CreateDeliveryStreamInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.DeliveryStreamEncryptionConfigurationInput !== undefined &&\n input.DeliveryStreamEncryptionConfigurationInput !== null && {\n DeliveryStreamEncryptionConfigurationInput: serializeAws_json1_1DeliveryStreamEncryptionConfigurationInput(input.DeliveryStreamEncryptionConfigurationInput, context),\n })), (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.DeliveryStreamType !== undefined &&\n input.DeliveryStreamType !== null && { DeliveryStreamType: input.DeliveryStreamType })), (input.ElasticsearchDestinationConfiguration !== undefined &&\n input.ElasticsearchDestinationConfiguration !== null && {\n ElasticsearchDestinationConfiguration: serializeAws_json1_1ElasticsearchDestinationConfiguration(input.ElasticsearchDestinationConfiguration, context),\n })), (input.ExtendedS3DestinationConfiguration !== undefined &&\n input.ExtendedS3DestinationConfiguration !== null && {\n ExtendedS3DestinationConfiguration: serializeAws_json1_1ExtendedS3DestinationConfiguration(input.ExtendedS3DestinationConfiguration, context),\n })), (input.HttpEndpointDestinationConfiguration !== undefined &&\n input.HttpEndpointDestinationConfiguration !== null && {\n HttpEndpointDestinationConfiguration: serializeAws_json1_1HttpEndpointDestinationConfiguration(input.HttpEndpointDestinationConfiguration, context),\n })), (input.KinesisStreamSourceConfiguration !== undefined &&\n input.KinesisStreamSourceConfiguration !== null && {\n KinesisStreamSourceConfiguration: serializeAws_json1_1KinesisStreamSourceConfiguration(input.KinesisStreamSourceConfiguration, context),\n })), (input.RedshiftDestinationConfiguration !== undefined &&\n input.RedshiftDestinationConfiguration !== null && {\n RedshiftDestinationConfiguration: serializeAws_json1_1RedshiftDestinationConfiguration(input.RedshiftDestinationConfiguration, context),\n })), (input.S3DestinationConfiguration !== undefined &&\n input.S3DestinationConfiguration !== null && {\n S3DestinationConfiguration: serializeAws_json1_1S3DestinationConfiguration(input.S3DestinationConfiguration, context),\n })), (input.SplunkDestinationConfiguration !== undefined &&\n input.SplunkDestinationConfiguration !== null && {\n SplunkDestinationConfiguration: serializeAws_json1_1SplunkDestinationConfiguration(input.SplunkDestinationConfiguration, context),\n })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1TagDeliveryStreamInputTagList(input.Tags, context) }));\n};\nvar serializeAws_json1_1DataFormatConversionConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.InputFormatConfiguration !== undefined &&\n input.InputFormatConfiguration !== null && {\n InputFormatConfiguration: serializeAws_json1_1InputFormatConfiguration(input.InputFormatConfiguration, context),\n })), (input.OutputFormatConfiguration !== undefined &&\n input.OutputFormatConfiguration !== null && {\n OutputFormatConfiguration: serializeAws_json1_1OutputFormatConfiguration(input.OutputFormatConfiguration, context),\n })), (input.SchemaConfiguration !== undefined &&\n input.SchemaConfiguration !== null && {\n SchemaConfiguration: serializeAws_json1_1SchemaConfiguration(input.SchemaConfiguration, context),\n }));\n};\nvar serializeAws_json1_1DeleteDeliveryStreamInput = function (input, context) {\n return __assign(__assign({}, (input.AllowForceDelete !== undefined &&\n input.AllowForceDelete !== null && { AllowForceDelete: input.AllowForceDelete })), (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName }));\n};\nvar serializeAws_json1_1DeliveryStreamEncryptionConfigurationInput = function (input, context) {\n return __assign(__assign({}, (input.KeyARN !== undefined && input.KeyARN !== null && { KeyARN: input.KeyARN })), (input.KeyType !== undefined && input.KeyType !== null && { KeyType: input.KeyType }));\n};\nvar serializeAws_json1_1DescribeDeliveryStreamInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.ExclusiveStartDestinationId !== undefined &&\n input.ExclusiveStartDestinationId !== null && { ExclusiveStartDestinationId: input.ExclusiveStartDestinationId })), (input.Limit !== undefined && input.Limit !== null && { Limit: input.Limit }));\n};\nvar serializeAws_json1_1Deserializer = function (input, context) {\n return __assign(__assign({}, (input.HiveJsonSerDe !== undefined &&\n input.HiveJsonSerDe !== null && {\n HiveJsonSerDe: serializeAws_json1_1HiveJsonSerDe(input.HiveJsonSerDe, context),\n })), (input.OpenXJsonSerDe !== undefined &&\n input.OpenXJsonSerDe !== null && {\n OpenXJsonSerDe: serializeAws_json1_1OpenXJsonSerDe(input.OpenXJsonSerDe, context),\n }));\n};\nvar serializeAws_json1_1ElasticsearchBufferingHints = function (input, context) {\n return __assign(__assign({}, (input.IntervalInSeconds !== undefined &&\n input.IntervalInSeconds !== null && { IntervalInSeconds: input.IntervalInSeconds })), (input.SizeInMBs !== undefined && input.SizeInMBs !== null && { SizeInMBs: input.SizeInMBs }));\n};\nvar serializeAws_json1_1ElasticsearchDestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1ElasticsearchBufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.ClusterEndpoint !== undefined &&\n input.ClusterEndpoint !== null && { ClusterEndpoint: input.ClusterEndpoint })), (input.DomainARN !== undefined && input.DomainARN !== null && { DomainARN: input.DomainARN })), (input.IndexName !== undefined && input.IndexName !== null && { IndexName: input.IndexName })), (input.IndexRotationPeriod !== undefined &&\n input.IndexRotationPeriod !== null && { IndexRotationPeriod: input.IndexRotationPeriod })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1ElasticsearchRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Configuration !== undefined &&\n input.S3Configuration !== null && {\n S3Configuration: serializeAws_json1_1S3DestinationConfiguration(input.S3Configuration, context),\n })), (input.TypeName !== undefined && input.TypeName !== null && { TypeName: input.TypeName })), (input.VpcConfiguration !== undefined &&\n input.VpcConfiguration !== null && {\n VpcConfiguration: serializeAws_json1_1VpcConfiguration(input.VpcConfiguration, context),\n }));\n};\nvar serializeAws_json1_1ElasticsearchDestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1ElasticsearchBufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.ClusterEndpoint !== undefined &&\n input.ClusterEndpoint !== null && { ClusterEndpoint: input.ClusterEndpoint })), (input.DomainARN !== undefined && input.DomainARN !== null && { DomainARN: input.DomainARN })), (input.IndexName !== undefined && input.IndexName !== null && { IndexName: input.IndexName })), (input.IndexRotationPeriod !== undefined &&\n input.IndexRotationPeriod !== null && { IndexRotationPeriod: input.IndexRotationPeriod })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1ElasticsearchRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3Update !== undefined &&\n input.S3Update !== null && { S3Update: serializeAws_json1_1S3DestinationUpdate(input.S3Update, context) })), (input.TypeName !== undefined && input.TypeName !== null && { TypeName: input.TypeName }));\n};\nvar serializeAws_json1_1ElasticsearchRetryOptions = function (input, context) {\n return __assign({}, (input.DurationInSeconds !== undefined &&\n input.DurationInSeconds !== null && { DurationInSeconds: input.DurationInSeconds }));\n};\nvar serializeAws_json1_1EncryptionConfiguration = function (input, context) {\n return __assign(__assign({}, (input.KMSEncryptionConfig !== undefined &&\n input.KMSEncryptionConfig !== null && {\n KMSEncryptionConfig: serializeAws_json1_1KMSEncryptionConfig(input.KMSEncryptionConfig, context),\n })), (input.NoEncryptionConfig !== undefined &&\n input.NoEncryptionConfig !== null && { NoEncryptionConfig: input.NoEncryptionConfig }));\n};\nvar serializeAws_json1_1ExtendedS3DestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BucketARN !== undefined && input.BucketARN !== null && { BucketARN: input.BucketARN })), (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1BufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.CompressionFormat !== undefined &&\n input.CompressionFormat !== null && { CompressionFormat: input.CompressionFormat })), (input.DataFormatConversionConfiguration !== undefined &&\n input.DataFormatConversionConfiguration !== null && {\n DataFormatConversionConfiguration: serializeAws_json1_1DataFormatConversionConfiguration(input.DataFormatConversionConfiguration, context),\n })), (input.EncryptionConfiguration !== undefined &&\n input.EncryptionConfiguration !== null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n })), (input.ErrorOutputPrefix !== undefined &&\n input.ErrorOutputPrefix !== null && { ErrorOutputPrefix: input.ErrorOutputPrefix })), (input.Prefix !== undefined && input.Prefix !== null && { Prefix: input.Prefix })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupConfiguration !== undefined &&\n input.S3BackupConfiguration !== null && {\n S3BackupConfiguration: serializeAws_json1_1S3DestinationConfiguration(input.S3BackupConfiguration, context),\n })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode }));\n};\nvar serializeAws_json1_1ExtendedS3DestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BucketARN !== undefined && input.BucketARN !== null && { BucketARN: input.BucketARN })), (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1BufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.CompressionFormat !== undefined &&\n input.CompressionFormat !== null && { CompressionFormat: input.CompressionFormat })), (input.DataFormatConversionConfiguration !== undefined &&\n input.DataFormatConversionConfiguration !== null && {\n DataFormatConversionConfiguration: serializeAws_json1_1DataFormatConversionConfiguration(input.DataFormatConversionConfiguration, context),\n })), (input.EncryptionConfiguration !== undefined &&\n input.EncryptionConfiguration !== null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n })), (input.ErrorOutputPrefix !== undefined &&\n input.ErrorOutputPrefix !== null && { ErrorOutputPrefix: input.ErrorOutputPrefix })), (input.Prefix !== undefined && input.Prefix !== null && { Prefix: input.Prefix })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3BackupUpdate !== undefined &&\n input.S3BackupUpdate !== null && {\n S3BackupUpdate: serializeAws_json1_1S3DestinationUpdate(input.S3BackupUpdate, context),\n }));\n};\nvar serializeAws_json1_1HiveJsonSerDe = function (input, context) {\n return __assign({}, (input.TimestampFormats !== undefined &&\n input.TimestampFormats !== null && {\n TimestampFormats: serializeAws_json1_1ListOfNonEmptyStrings(input.TimestampFormats, context),\n }));\n};\nvar serializeAws_json1_1HttpEndpointBufferingHints = function (input, context) {\n return __assign(__assign({}, (input.IntervalInSeconds !== undefined &&\n input.IntervalInSeconds !== null && { IntervalInSeconds: input.IntervalInSeconds })), (input.SizeInMBs !== undefined && input.SizeInMBs !== null && { SizeInMBs: input.SizeInMBs }));\n};\nvar serializeAws_json1_1HttpEndpointCommonAttribute = function (input, context) {\n return __assign(__assign({}, (input.AttributeName !== undefined && input.AttributeName !== null && { AttributeName: input.AttributeName })), (input.AttributeValue !== undefined &&\n input.AttributeValue !== null && { AttributeValue: input.AttributeValue }));\n};\nvar serializeAws_json1_1HttpEndpointCommonAttributesList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1HttpEndpointCommonAttribute(entry, context);\n });\n};\nvar serializeAws_json1_1HttpEndpointConfiguration = function (input, context) {\n return __assign(__assign(__assign({}, (input.AccessKey !== undefined && input.AccessKey !== null && { AccessKey: input.AccessKey })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_json1_1HttpEndpointDestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1HttpEndpointBufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.EndpointConfiguration !== undefined &&\n input.EndpointConfiguration !== null && {\n EndpointConfiguration: serializeAws_json1_1HttpEndpointConfiguration(input.EndpointConfiguration, context),\n })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RequestConfiguration !== undefined &&\n input.RequestConfiguration !== null && {\n RequestConfiguration: serializeAws_json1_1HttpEndpointRequestConfiguration(input.RequestConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1HttpEndpointRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Configuration !== undefined &&\n input.S3Configuration !== null && {\n S3Configuration: serializeAws_json1_1S3DestinationConfiguration(input.S3Configuration, context),\n }));\n};\nvar serializeAws_json1_1HttpEndpointDestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1HttpEndpointBufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.EndpointConfiguration !== undefined &&\n input.EndpointConfiguration !== null && {\n EndpointConfiguration: serializeAws_json1_1HttpEndpointConfiguration(input.EndpointConfiguration, context),\n })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RequestConfiguration !== undefined &&\n input.RequestConfiguration !== null && {\n RequestConfiguration: serializeAws_json1_1HttpEndpointRequestConfiguration(input.RequestConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1HttpEndpointRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Update !== undefined &&\n input.S3Update !== null && { S3Update: serializeAws_json1_1S3DestinationUpdate(input.S3Update, context) }));\n};\nvar serializeAws_json1_1HttpEndpointRequestConfiguration = function (input, context) {\n return __assign(__assign({}, (input.CommonAttributes !== undefined &&\n input.CommonAttributes !== null && {\n CommonAttributes: serializeAws_json1_1HttpEndpointCommonAttributesList(input.CommonAttributes, context),\n })), (input.ContentEncoding !== undefined &&\n input.ContentEncoding !== null && { ContentEncoding: input.ContentEncoding }));\n};\nvar serializeAws_json1_1HttpEndpointRetryOptions = function (input, context) {\n return __assign({}, (input.DurationInSeconds !== undefined &&\n input.DurationInSeconds !== null && { DurationInSeconds: input.DurationInSeconds }));\n};\nvar serializeAws_json1_1InputFormatConfiguration = function (input, context) {\n return __assign({}, (input.Deserializer !== undefined &&\n input.Deserializer !== null && { Deserializer: serializeAws_json1_1Deserializer(input.Deserializer, context) }));\n};\nvar serializeAws_json1_1KinesisStreamSourceConfiguration = function (input, context) {\n return __assign(__assign({}, (input.KinesisStreamARN !== undefined &&\n input.KinesisStreamARN !== null && { KinesisStreamARN: input.KinesisStreamARN })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN }));\n};\nvar serializeAws_json1_1KMSEncryptionConfig = function (input, context) {\n return __assign({}, (input.AWSKMSKeyARN !== undefined && input.AWSKMSKeyARN !== null && { AWSKMSKeyARN: input.AWSKMSKeyARN }));\n};\nvar serializeAws_json1_1ListDeliveryStreamsInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.DeliveryStreamType !== undefined &&\n input.DeliveryStreamType !== null && { DeliveryStreamType: input.DeliveryStreamType })), (input.ExclusiveStartDeliveryStreamName !== undefined &&\n input.ExclusiveStartDeliveryStreamName !== null && {\n ExclusiveStartDeliveryStreamName: input.ExclusiveStartDeliveryStreamName,\n })), (input.Limit !== undefined && input.Limit !== null && { Limit: input.Limit }));\n};\nvar serializeAws_json1_1ListOfNonEmptyStrings = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1ListOfNonEmptyStringsWithoutWhitespace = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1ListTagsForDeliveryStreamInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.ExclusiveStartTagKey !== undefined &&\n input.ExclusiveStartTagKey !== null && { ExclusiveStartTagKey: input.ExclusiveStartTagKey })), (input.Limit !== undefined && input.Limit !== null && { Limit: input.Limit }));\n};\nvar serializeAws_json1_1OpenXJsonSerDe = function (input, context) {\n return __assign(__assign(__assign({}, (input.CaseInsensitive !== undefined &&\n input.CaseInsensitive !== null && { CaseInsensitive: input.CaseInsensitive })), (input.ColumnToJsonKeyMappings !== undefined &&\n input.ColumnToJsonKeyMappings !== null && {\n ColumnToJsonKeyMappings: serializeAws_json1_1ColumnToJsonKeyMappings(input.ColumnToJsonKeyMappings, context),\n })), (input.ConvertDotsInJsonKeysToUnderscores !== undefined &&\n input.ConvertDotsInJsonKeysToUnderscores !== null && {\n ConvertDotsInJsonKeysToUnderscores: input.ConvertDotsInJsonKeysToUnderscores,\n }));\n};\nvar serializeAws_json1_1OrcSerDe = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BlockSizeBytes !== undefined &&\n input.BlockSizeBytes !== null && { BlockSizeBytes: input.BlockSizeBytes })), (input.BloomFilterColumns !== undefined &&\n input.BloomFilterColumns !== null && {\n BloomFilterColumns: serializeAws_json1_1ListOfNonEmptyStringsWithoutWhitespace(input.BloomFilterColumns, context),\n })), (input.BloomFilterFalsePositiveProbability !== undefined &&\n input.BloomFilterFalsePositiveProbability !== null && {\n BloomFilterFalsePositiveProbability: input.BloomFilterFalsePositiveProbability,\n })), (input.Compression !== undefined && input.Compression !== null && { Compression: input.Compression })), (input.DictionaryKeyThreshold !== undefined &&\n input.DictionaryKeyThreshold !== null && { DictionaryKeyThreshold: input.DictionaryKeyThreshold })), (input.EnablePadding !== undefined && input.EnablePadding !== null && { EnablePadding: input.EnablePadding })), (input.FormatVersion !== undefined && input.FormatVersion !== null && { FormatVersion: input.FormatVersion })), (input.PaddingTolerance !== undefined &&\n input.PaddingTolerance !== null && { PaddingTolerance: input.PaddingTolerance })), (input.RowIndexStride !== undefined &&\n input.RowIndexStride !== null && { RowIndexStride: input.RowIndexStride })), (input.StripeSizeBytes !== undefined &&\n input.StripeSizeBytes !== null && { StripeSizeBytes: input.StripeSizeBytes }));\n};\nvar serializeAws_json1_1OutputFormatConfiguration = function (input, context) {\n return __assign({}, (input.Serializer !== undefined &&\n input.Serializer !== null && { Serializer: serializeAws_json1_1Serializer(input.Serializer, context) }));\n};\nvar serializeAws_json1_1ParquetSerDe = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.BlockSizeBytes !== undefined &&\n input.BlockSizeBytes !== null && { BlockSizeBytes: input.BlockSizeBytes })), (input.Compression !== undefined && input.Compression !== null && { Compression: input.Compression })), (input.EnableDictionaryCompression !== undefined &&\n input.EnableDictionaryCompression !== null && { EnableDictionaryCompression: input.EnableDictionaryCompression })), (input.MaxPaddingBytes !== undefined &&\n input.MaxPaddingBytes !== null && { MaxPaddingBytes: input.MaxPaddingBytes })), (input.PageSizeBytes !== undefined && input.PageSizeBytes !== null && { PageSizeBytes: input.PageSizeBytes })), (input.WriterVersion !== undefined && input.WriterVersion !== null && { WriterVersion: input.WriterVersion }));\n};\nvar serializeAws_json1_1ProcessingConfiguration = function (input, context) {\n return __assign(__assign({}, (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.Processors !== undefined &&\n input.Processors !== null && { Processors: serializeAws_json1_1ProcessorList(input.Processors, context) }));\n};\nvar serializeAws_json1_1Processor = function (input, context) {\n return __assign(__assign({}, (input.Parameters !== undefined &&\n input.Parameters !== null && {\n Parameters: serializeAws_json1_1ProcessorParameterList(input.Parameters, context),\n })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_json1_1ProcessorList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1Processor(entry, context);\n });\n};\nvar serializeAws_json1_1ProcessorParameter = function (input, context) {\n return __assign(__assign({}, (input.ParameterName !== undefined && input.ParameterName !== null && { ParameterName: input.ParameterName })), (input.ParameterValue !== undefined &&\n input.ParameterValue !== null && { ParameterValue: input.ParameterValue }));\n};\nvar serializeAws_json1_1ProcessorParameterList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1ProcessorParameter(entry, context);\n });\n};\nvar serializeAws_json1_1PutRecordBatchInput = function (input, context) {\n return __assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.Records !== undefined &&\n input.Records !== null && {\n Records: serializeAws_json1_1PutRecordBatchRequestEntryList(input.Records, context),\n }));\n};\nvar serializeAws_json1_1PutRecordBatchRequestEntryList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1_Record(entry, context);\n });\n};\nvar serializeAws_json1_1PutRecordInput = function (input, context) {\n return __assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.Record !== undefined &&\n input.Record !== null && { Record: serializeAws_json1_1_Record(input.Record, context) }));\n};\nvar serializeAws_json1_1_Record = function (input, context) {\n return __assign({}, (input.Data !== undefined && input.Data !== null && { Data: context.base64Encoder(input.Data) }));\n};\nvar serializeAws_json1_1RedshiftDestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.ClusterJDBCURL !== undefined &&\n input.ClusterJDBCURL !== null && { ClusterJDBCURL: input.ClusterJDBCURL })), (input.CopyCommand !== undefined &&\n input.CopyCommand !== null && { CopyCommand: serializeAws_json1_1CopyCommand(input.CopyCommand, context) })), (input.Password !== undefined && input.Password !== null && { Password: input.Password })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1RedshiftRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupConfiguration !== undefined &&\n input.S3BackupConfiguration !== null && {\n S3BackupConfiguration: serializeAws_json1_1S3DestinationConfiguration(input.S3BackupConfiguration, context),\n })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Configuration !== undefined &&\n input.S3Configuration !== null && {\n S3Configuration: serializeAws_json1_1S3DestinationConfiguration(input.S3Configuration, context),\n })), (input.Username !== undefined && input.Username !== null && { Username: input.Username }));\n};\nvar serializeAws_json1_1RedshiftDestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.ClusterJDBCURL !== undefined &&\n input.ClusterJDBCURL !== null && { ClusterJDBCURL: input.ClusterJDBCURL })), (input.CopyCommand !== undefined &&\n input.CopyCommand !== null && { CopyCommand: serializeAws_json1_1CopyCommand(input.CopyCommand, context) })), (input.Password !== undefined && input.Password !== null && { Password: input.Password })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1RedshiftRetryOptions(input.RetryOptions, context),\n })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3BackupUpdate !== undefined &&\n input.S3BackupUpdate !== null && {\n S3BackupUpdate: serializeAws_json1_1S3DestinationUpdate(input.S3BackupUpdate, context),\n })), (input.S3Update !== undefined &&\n input.S3Update !== null && { S3Update: serializeAws_json1_1S3DestinationUpdate(input.S3Update, context) })), (input.Username !== undefined && input.Username !== null && { Username: input.Username }));\n};\nvar serializeAws_json1_1RedshiftRetryOptions = function (input, context) {\n return __assign({}, (input.DurationInSeconds !== undefined &&\n input.DurationInSeconds !== null && { DurationInSeconds: input.DurationInSeconds }));\n};\nvar serializeAws_json1_1S3DestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BucketARN !== undefined && input.BucketARN !== null && { BucketARN: input.BucketARN })), (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1BufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.CompressionFormat !== undefined &&\n input.CompressionFormat !== null && { CompressionFormat: input.CompressionFormat })), (input.EncryptionConfiguration !== undefined &&\n input.EncryptionConfiguration !== null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n })), (input.ErrorOutputPrefix !== undefined &&\n input.ErrorOutputPrefix !== null && { ErrorOutputPrefix: input.ErrorOutputPrefix })), (input.Prefix !== undefined && input.Prefix !== null && { Prefix: input.Prefix })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN }));\n};\nvar serializeAws_json1_1S3DestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BucketARN !== undefined && input.BucketARN !== null && { BucketARN: input.BucketARN })), (input.BufferingHints !== undefined &&\n input.BufferingHints !== null && {\n BufferingHints: serializeAws_json1_1BufferingHints(input.BufferingHints, context),\n })), (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.CompressionFormat !== undefined &&\n input.CompressionFormat !== null && { CompressionFormat: input.CompressionFormat })), (input.EncryptionConfiguration !== undefined &&\n input.EncryptionConfiguration !== null && {\n EncryptionConfiguration: serializeAws_json1_1EncryptionConfiguration(input.EncryptionConfiguration, context),\n })), (input.ErrorOutputPrefix !== undefined &&\n input.ErrorOutputPrefix !== null && { ErrorOutputPrefix: input.ErrorOutputPrefix })), (input.Prefix !== undefined && input.Prefix !== null && { Prefix: input.Prefix })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN }));\n};\nvar serializeAws_json1_1SchemaConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.CatalogId !== undefined && input.CatalogId !== null && { CatalogId: input.CatalogId })), (input.DatabaseName !== undefined && input.DatabaseName !== null && { DatabaseName: input.DatabaseName })), (input.Region !== undefined && input.Region !== null && { Region: input.Region })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.TableName !== undefined && input.TableName !== null && { TableName: input.TableName })), (input.VersionId !== undefined && input.VersionId !== null && { VersionId: input.VersionId }));\n};\nvar serializeAws_json1_1SecurityGroupIdList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1Serializer = function (input, context) {\n return __assign(__assign({}, (input.OrcSerDe !== undefined &&\n input.OrcSerDe !== null && { OrcSerDe: serializeAws_json1_1OrcSerDe(input.OrcSerDe, context) })), (input.ParquetSerDe !== undefined &&\n input.ParquetSerDe !== null && { ParquetSerDe: serializeAws_json1_1ParquetSerDe(input.ParquetSerDe, context) }));\n};\nvar serializeAws_json1_1SplunkDestinationConfiguration = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.HECAcknowledgmentTimeoutInSeconds !== undefined &&\n input.HECAcknowledgmentTimeoutInSeconds !== null && {\n HECAcknowledgmentTimeoutInSeconds: input.HECAcknowledgmentTimeoutInSeconds,\n })), (input.HECEndpoint !== undefined && input.HECEndpoint !== null && { HECEndpoint: input.HECEndpoint })), (input.HECEndpointType !== undefined &&\n input.HECEndpointType !== null && { HECEndpointType: input.HECEndpointType })), (input.HECToken !== undefined && input.HECToken !== null && { HECToken: input.HECToken })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1SplunkRetryOptions(input.RetryOptions, context),\n })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Configuration !== undefined &&\n input.S3Configuration !== null && {\n S3Configuration: serializeAws_json1_1S3DestinationConfiguration(input.S3Configuration, context),\n }));\n};\nvar serializeAws_json1_1SplunkDestinationUpdate = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CloudWatchLoggingOptions !== undefined &&\n input.CloudWatchLoggingOptions !== null && {\n CloudWatchLoggingOptions: serializeAws_json1_1CloudWatchLoggingOptions(input.CloudWatchLoggingOptions, context),\n })), (input.HECAcknowledgmentTimeoutInSeconds !== undefined &&\n input.HECAcknowledgmentTimeoutInSeconds !== null && {\n HECAcknowledgmentTimeoutInSeconds: input.HECAcknowledgmentTimeoutInSeconds,\n })), (input.HECEndpoint !== undefined && input.HECEndpoint !== null && { HECEndpoint: input.HECEndpoint })), (input.HECEndpointType !== undefined &&\n input.HECEndpointType !== null && { HECEndpointType: input.HECEndpointType })), (input.HECToken !== undefined && input.HECToken !== null && { HECToken: input.HECToken })), (input.ProcessingConfiguration !== undefined &&\n input.ProcessingConfiguration !== null && {\n ProcessingConfiguration: serializeAws_json1_1ProcessingConfiguration(input.ProcessingConfiguration, context),\n })), (input.RetryOptions !== undefined &&\n input.RetryOptions !== null && {\n RetryOptions: serializeAws_json1_1SplunkRetryOptions(input.RetryOptions, context),\n })), (input.S3BackupMode !== undefined && input.S3BackupMode !== null && { S3BackupMode: input.S3BackupMode })), (input.S3Update !== undefined &&\n input.S3Update !== null && { S3Update: serializeAws_json1_1S3DestinationUpdate(input.S3Update, context) }));\n};\nvar serializeAws_json1_1SplunkRetryOptions = function (input, context) {\n return __assign({}, (input.DurationInSeconds !== undefined &&\n input.DurationInSeconds !== null && { DurationInSeconds: input.DurationInSeconds }));\n};\nvar serializeAws_json1_1StartDeliveryStreamEncryptionInput = function (input, context) {\n return __assign(__assign({}, (input.DeliveryStreamEncryptionConfigurationInput !== undefined &&\n input.DeliveryStreamEncryptionConfigurationInput !== null && {\n DeliveryStreamEncryptionConfigurationInput: serializeAws_json1_1DeliveryStreamEncryptionConfigurationInput(input.DeliveryStreamEncryptionConfigurationInput, context),\n })), (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName }));\n};\nvar serializeAws_json1_1StopDeliveryStreamEncryptionInput = function (input, context) {\n return __assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName }));\n};\nvar serializeAws_json1_1SubnetIdList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1Tag = function (input, context) {\n return __assign(__assign({}, (input.Key !== undefined && input.Key !== null && { Key: input.Key })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_json1_1TagDeliveryStreamInput = function (input, context) {\n return __assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1TagDeliveryStreamInputTagList(input.Tags, context) }));\n};\nvar serializeAws_json1_1TagDeliveryStreamInputTagList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1Tag(entry, context);\n });\n};\nvar serializeAws_json1_1TagKeyList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1UntagDeliveryStreamInput = function (input, context) {\n return __assign(__assign({}, (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1TagKeyList(input.TagKeys, context) }));\n};\nvar serializeAws_json1_1UpdateDestinationInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CurrentDeliveryStreamVersionId !== undefined &&\n input.CurrentDeliveryStreamVersionId !== null && {\n CurrentDeliveryStreamVersionId: input.CurrentDeliveryStreamVersionId,\n })), (input.DeliveryStreamName !== undefined &&\n input.DeliveryStreamName !== null && { DeliveryStreamName: input.DeliveryStreamName })), (input.DestinationId !== undefined && input.DestinationId !== null && { DestinationId: input.DestinationId })), (input.ElasticsearchDestinationUpdate !== undefined &&\n input.ElasticsearchDestinationUpdate !== null && {\n ElasticsearchDestinationUpdate: serializeAws_json1_1ElasticsearchDestinationUpdate(input.ElasticsearchDestinationUpdate, context),\n })), (input.ExtendedS3DestinationUpdate !== undefined &&\n input.ExtendedS3DestinationUpdate !== null && {\n ExtendedS3DestinationUpdate: serializeAws_json1_1ExtendedS3DestinationUpdate(input.ExtendedS3DestinationUpdate, context),\n })), (input.HttpEndpointDestinationUpdate !== undefined &&\n input.HttpEndpointDestinationUpdate !== null && {\n HttpEndpointDestinationUpdate: serializeAws_json1_1HttpEndpointDestinationUpdate(input.HttpEndpointDestinationUpdate, context),\n })), (input.RedshiftDestinationUpdate !== undefined &&\n input.RedshiftDestinationUpdate !== null && {\n RedshiftDestinationUpdate: serializeAws_json1_1RedshiftDestinationUpdate(input.RedshiftDestinationUpdate, context),\n })), (input.S3DestinationUpdate !== undefined &&\n input.S3DestinationUpdate !== null && {\n S3DestinationUpdate: serializeAws_json1_1S3DestinationUpdate(input.S3DestinationUpdate, context),\n })), (input.SplunkDestinationUpdate !== undefined &&\n input.SplunkDestinationUpdate !== null && {\n SplunkDestinationUpdate: serializeAws_json1_1SplunkDestinationUpdate(input.SplunkDestinationUpdate, context),\n }));\n};\nvar serializeAws_json1_1VpcConfiguration = function (input, context) {\n return __assign(__assign(__assign({}, (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.SecurityGroupIds !== undefined &&\n input.SecurityGroupIds !== null && {\n SecurityGroupIds: serializeAws_json1_1SecurityGroupIdList(input.SecurityGroupIds, context),\n })), (input.SubnetIds !== undefined &&\n input.SubnetIds !== null && { SubnetIds: serializeAws_json1_1SubnetIdList(input.SubnetIds, context) }));\n};\nvar deserializeAws_json1_1BufferingHints = function (output, context) {\n return {\n IntervalInSeconds: output.IntervalInSeconds !== undefined && output.IntervalInSeconds !== null\n ? output.IntervalInSeconds\n : undefined,\n SizeInMBs: output.SizeInMBs !== undefined && output.SizeInMBs !== null ? output.SizeInMBs : undefined,\n };\n};\nvar deserializeAws_json1_1CloudWatchLoggingOptions = function (output, context) {\n return {\n Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n LogGroupName: output.LogGroupName !== undefined && output.LogGroupName !== null ? output.LogGroupName : undefined,\n LogStreamName: output.LogStreamName !== undefined && output.LogStreamName !== null ? output.LogStreamName : undefined,\n };\n};\nvar deserializeAws_json1_1ColumnToJsonKeyMappings = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1ConcurrentModificationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1CopyCommand = function (output, context) {\n return {\n CopyOptions: output.CopyOptions !== undefined && output.CopyOptions !== null ? output.CopyOptions : undefined,\n DataTableColumns: output.DataTableColumns !== undefined && output.DataTableColumns !== null ? output.DataTableColumns : undefined,\n DataTableName: output.DataTableName !== undefined && output.DataTableName !== null ? output.DataTableName : undefined,\n };\n};\nvar deserializeAws_json1_1CreateDeliveryStreamOutput = function (output, context) {\n return {\n DeliveryStreamARN: output.DeliveryStreamARN !== undefined && output.DeliveryStreamARN !== null\n ? output.DeliveryStreamARN\n : undefined,\n };\n};\nvar deserializeAws_json1_1DataFormatConversionConfiguration = function (output, context) {\n return {\n Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n InputFormatConfiguration: output.InputFormatConfiguration !== undefined && output.InputFormatConfiguration !== null\n ? deserializeAws_json1_1InputFormatConfiguration(output.InputFormatConfiguration, context)\n : undefined,\n OutputFormatConfiguration: output.OutputFormatConfiguration !== undefined && output.OutputFormatConfiguration !== null\n ? deserializeAws_json1_1OutputFormatConfiguration(output.OutputFormatConfiguration, context)\n : undefined,\n SchemaConfiguration: output.SchemaConfiguration !== undefined && output.SchemaConfiguration !== null\n ? deserializeAws_json1_1SchemaConfiguration(output.SchemaConfiguration, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DeleteDeliveryStreamOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1DeliveryStreamDescription = function (output, context) {\n return {\n CreateTimestamp: output.CreateTimestamp !== undefined && output.CreateTimestamp !== null\n ? new Date(Math.round(output.CreateTimestamp * 1000))\n : undefined,\n DeliveryStreamARN: output.DeliveryStreamARN !== undefined && output.DeliveryStreamARN !== null\n ? output.DeliveryStreamARN\n : undefined,\n DeliveryStreamEncryptionConfiguration: output.DeliveryStreamEncryptionConfiguration !== undefined &&\n output.DeliveryStreamEncryptionConfiguration !== null\n ? deserializeAws_json1_1DeliveryStreamEncryptionConfiguration(output.DeliveryStreamEncryptionConfiguration, context)\n : undefined,\n DeliveryStreamName: output.DeliveryStreamName !== undefined && output.DeliveryStreamName !== null\n ? output.DeliveryStreamName\n : undefined,\n DeliveryStreamStatus: output.DeliveryStreamStatus !== undefined && output.DeliveryStreamStatus !== null\n ? output.DeliveryStreamStatus\n : undefined,\n DeliveryStreamType: output.DeliveryStreamType !== undefined && output.DeliveryStreamType !== null\n ? output.DeliveryStreamType\n : undefined,\n Destinations: output.Destinations !== undefined && output.Destinations !== null\n ? deserializeAws_json1_1DestinationDescriptionList(output.Destinations, context)\n : undefined,\n FailureDescription: output.FailureDescription !== undefined && output.FailureDescription !== null\n ? deserializeAws_json1_1FailureDescription(output.FailureDescription, context)\n : undefined,\n HasMoreDestinations: output.HasMoreDestinations !== undefined && output.HasMoreDestinations !== null\n ? output.HasMoreDestinations\n : undefined,\n LastUpdateTimestamp: output.LastUpdateTimestamp !== undefined && output.LastUpdateTimestamp !== null\n ? new Date(Math.round(output.LastUpdateTimestamp * 1000))\n : undefined,\n Source: output.Source !== undefined && output.Source !== null\n ? deserializeAws_json1_1SourceDescription(output.Source, context)\n : undefined,\n VersionId: output.VersionId !== undefined && output.VersionId !== null ? output.VersionId : undefined,\n };\n};\nvar deserializeAws_json1_1DeliveryStreamEncryptionConfiguration = function (output, context) {\n return {\n FailureDescription: output.FailureDescription !== undefined && output.FailureDescription !== null\n ? deserializeAws_json1_1FailureDescription(output.FailureDescription, context)\n : undefined,\n KeyARN: output.KeyARN !== undefined && output.KeyARN !== null ? output.KeyARN : undefined,\n KeyType: output.KeyType !== undefined && output.KeyType !== null ? output.KeyType : undefined,\n Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined,\n };\n};\nvar deserializeAws_json1_1DeliveryStreamNameList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1DescribeDeliveryStreamOutput = function (output, context) {\n return {\n DeliveryStreamDescription: output.DeliveryStreamDescription !== undefined && output.DeliveryStreamDescription !== null\n ? deserializeAws_json1_1DeliveryStreamDescription(output.DeliveryStreamDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1Deserializer = function (output, context) {\n return {\n HiveJsonSerDe: output.HiveJsonSerDe !== undefined && output.HiveJsonSerDe !== null\n ? deserializeAws_json1_1HiveJsonSerDe(output.HiveJsonSerDe, context)\n : undefined,\n OpenXJsonSerDe: output.OpenXJsonSerDe !== undefined && output.OpenXJsonSerDe !== null\n ? deserializeAws_json1_1OpenXJsonSerDe(output.OpenXJsonSerDe, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DestinationDescription = function (output, context) {\n return {\n DestinationId: output.DestinationId !== undefined && output.DestinationId !== null ? output.DestinationId : undefined,\n ElasticsearchDestinationDescription: output.ElasticsearchDestinationDescription !== undefined && output.ElasticsearchDestinationDescription !== null\n ? deserializeAws_json1_1ElasticsearchDestinationDescription(output.ElasticsearchDestinationDescription, context)\n : undefined,\n ExtendedS3DestinationDescription: output.ExtendedS3DestinationDescription !== undefined && output.ExtendedS3DestinationDescription !== null\n ? deserializeAws_json1_1ExtendedS3DestinationDescription(output.ExtendedS3DestinationDescription, context)\n : undefined,\n HttpEndpointDestinationDescription: output.HttpEndpointDestinationDescription !== undefined && output.HttpEndpointDestinationDescription !== null\n ? deserializeAws_json1_1HttpEndpointDestinationDescription(output.HttpEndpointDestinationDescription, context)\n : undefined,\n RedshiftDestinationDescription: output.RedshiftDestinationDescription !== undefined && output.RedshiftDestinationDescription !== null\n ? deserializeAws_json1_1RedshiftDestinationDescription(output.RedshiftDestinationDescription, context)\n : undefined,\n S3DestinationDescription: output.S3DestinationDescription !== undefined && output.S3DestinationDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3DestinationDescription, context)\n : undefined,\n SplunkDestinationDescription: output.SplunkDestinationDescription !== undefined && output.SplunkDestinationDescription !== null\n ? deserializeAws_json1_1SplunkDestinationDescription(output.SplunkDestinationDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DestinationDescriptionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1DestinationDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1ElasticsearchBufferingHints = function (output, context) {\n return {\n IntervalInSeconds: output.IntervalInSeconds !== undefined && output.IntervalInSeconds !== null\n ? output.IntervalInSeconds\n : undefined,\n SizeInMBs: output.SizeInMBs !== undefined && output.SizeInMBs !== null ? output.SizeInMBs : undefined,\n };\n};\nvar deserializeAws_json1_1ElasticsearchDestinationDescription = function (output, context) {\n return {\n BufferingHints: output.BufferingHints !== undefined && output.BufferingHints !== null\n ? deserializeAws_json1_1ElasticsearchBufferingHints(output.BufferingHints, context)\n : undefined,\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n ClusterEndpoint: output.ClusterEndpoint !== undefined && output.ClusterEndpoint !== null ? output.ClusterEndpoint : undefined,\n DomainARN: output.DomainARN !== undefined && output.DomainARN !== null ? output.DomainARN : undefined,\n IndexName: output.IndexName !== undefined && output.IndexName !== null ? output.IndexName : undefined,\n IndexRotationPeriod: output.IndexRotationPeriod !== undefined && output.IndexRotationPeriod !== null\n ? output.IndexRotationPeriod\n : undefined,\n ProcessingConfiguration: output.ProcessingConfiguration !== undefined && output.ProcessingConfiguration !== null\n ? deserializeAws_json1_1ProcessingConfiguration(output.ProcessingConfiguration, context)\n : undefined,\n RetryOptions: output.RetryOptions !== undefined && output.RetryOptions !== null\n ? deserializeAws_json1_1ElasticsearchRetryOptions(output.RetryOptions, context)\n : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n S3BackupMode: output.S3BackupMode !== undefined && output.S3BackupMode !== null ? output.S3BackupMode : undefined,\n S3DestinationDescription: output.S3DestinationDescription !== undefined && output.S3DestinationDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3DestinationDescription, context)\n : undefined,\n TypeName: output.TypeName !== undefined && output.TypeName !== null ? output.TypeName : undefined,\n VpcConfigurationDescription: output.VpcConfigurationDescription !== undefined && output.VpcConfigurationDescription !== null\n ? deserializeAws_json1_1VpcConfigurationDescription(output.VpcConfigurationDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1ElasticsearchRetryOptions = function (output, context) {\n return {\n DurationInSeconds: output.DurationInSeconds !== undefined && output.DurationInSeconds !== null\n ? output.DurationInSeconds\n : undefined,\n };\n};\nvar deserializeAws_json1_1EncryptionConfiguration = function (output, context) {\n return {\n KMSEncryptionConfig: output.KMSEncryptionConfig !== undefined && output.KMSEncryptionConfig !== null\n ? deserializeAws_json1_1KMSEncryptionConfig(output.KMSEncryptionConfig, context)\n : undefined,\n NoEncryptionConfig: output.NoEncryptionConfig !== undefined && output.NoEncryptionConfig !== null\n ? output.NoEncryptionConfig\n : undefined,\n };\n};\nvar deserializeAws_json1_1ExtendedS3DestinationDescription = function (output, context) {\n return {\n BucketARN: output.BucketARN !== undefined && output.BucketARN !== null ? output.BucketARN : undefined,\n BufferingHints: output.BufferingHints !== undefined && output.BufferingHints !== null\n ? deserializeAws_json1_1BufferingHints(output.BufferingHints, context)\n : undefined,\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n CompressionFormat: output.CompressionFormat !== undefined && output.CompressionFormat !== null\n ? output.CompressionFormat\n : undefined,\n DataFormatConversionConfiguration: output.DataFormatConversionConfiguration !== undefined && output.DataFormatConversionConfiguration !== null\n ? deserializeAws_json1_1DataFormatConversionConfiguration(output.DataFormatConversionConfiguration, context)\n : undefined,\n EncryptionConfiguration: output.EncryptionConfiguration !== undefined && output.EncryptionConfiguration !== null\n ? deserializeAws_json1_1EncryptionConfiguration(output.EncryptionConfiguration, context)\n : undefined,\n ErrorOutputPrefix: output.ErrorOutputPrefix !== undefined && output.ErrorOutputPrefix !== null\n ? output.ErrorOutputPrefix\n : undefined,\n Prefix: output.Prefix !== undefined && output.Prefix !== null ? output.Prefix : undefined,\n ProcessingConfiguration: output.ProcessingConfiguration !== undefined && output.ProcessingConfiguration !== null\n ? deserializeAws_json1_1ProcessingConfiguration(output.ProcessingConfiguration, context)\n : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n S3BackupDescription: output.S3BackupDescription !== undefined && output.S3BackupDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3BackupDescription, context)\n : undefined,\n S3BackupMode: output.S3BackupMode !== undefined && output.S3BackupMode !== null ? output.S3BackupMode : undefined,\n };\n};\nvar deserializeAws_json1_1FailureDescription = function (output, context) {\n return {\n Details: output.Details !== undefined && output.Details !== null ? output.Details : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1HiveJsonSerDe = function (output, context) {\n return {\n TimestampFormats: output.TimestampFormats !== undefined && output.TimestampFormats !== null\n ? deserializeAws_json1_1ListOfNonEmptyStrings(output.TimestampFormats, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointBufferingHints = function (output, context) {\n return {\n IntervalInSeconds: output.IntervalInSeconds !== undefined && output.IntervalInSeconds !== null\n ? output.IntervalInSeconds\n : undefined,\n SizeInMBs: output.SizeInMBs !== undefined && output.SizeInMBs !== null ? output.SizeInMBs : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointCommonAttribute = function (output, context) {\n return {\n AttributeName: output.AttributeName !== undefined && output.AttributeName !== null ? output.AttributeName : undefined,\n AttributeValue: output.AttributeValue !== undefined && output.AttributeValue !== null ? output.AttributeValue : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointCommonAttributesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1HttpEndpointCommonAttribute(entry, context);\n });\n};\nvar deserializeAws_json1_1HttpEndpointDescription = function (output, context) {\n return {\n Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointDestinationDescription = function (output, context) {\n return {\n BufferingHints: output.BufferingHints !== undefined && output.BufferingHints !== null\n ? deserializeAws_json1_1HttpEndpointBufferingHints(output.BufferingHints, context)\n : undefined,\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n EndpointConfiguration: output.EndpointConfiguration !== undefined && output.EndpointConfiguration !== null\n ? deserializeAws_json1_1HttpEndpointDescription(output.EndpointConfiguration, context)\n : undefined,\n ProcessingConfiguration: output.ProcessingConfiguration !== undefined && output.ProcessingConfiguration !== null\n ? deserializeAws_json1_1ProcessingConfiguration(output.ProcessingConfiguration, context)\n : undefined,\n RequestConfiguration: output.RequestConfiguration !== undefined && output.RequestConfiguration !== null\n ? deserializeAws_json1_1HttpEndpointRequestConfiguration(output.RequestConfiguration, context)\n : undefined,\n RetryOptions: output.RetryOptions !== undefined && output.RetryOptions !== null\n ? deserializeAws_json1_1HttpEndpointRetryOptions(output.RetryOptions, context)\n : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n S3BackupMode: output.S3BackupMode !== undefined && output.S3BackupMode !== null ? output.S3BackupMode : undefined,\n S3DestinationDescription: output.S3DestinationDescription !== undefined && output.S3DestinationDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3DestinationDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointRequestConfiguration = function (output, context) {\n return {\n CommonAttributes: output.CommonAttributes !== undefined && output.CommonAttributes !== null\n ? deserializeAws_json1_1HttpEndpointCommonAttributesList(output.CommonAttributes, context)\n : undefined,\n ContentEncoding: output.ContentEncoding !== undefined && output.ContentEncoding !== null ? output.ContentEncoding : undefined,\n };\n};\nvar deserializeAws_json1_1HttpEndpointRetryOptions = function (output, context) {\n return {\n DurationInSeconds: output.DurationInSeconds !== undefined && output.DurationInSeconds !== null\n ? output.DurationInSeconds\n : undefined,\n };\n};\nvar deserializeAws_json1_1InputFormatConfiguration = function (output, context) {\n return {\n Deserializer: output.Deserializer !== undefined && output.Deserializer !== null\n ? deserializeAws_json1_1Deserializer(output.Deserializer, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidArgumentException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidKMSResourceException = function (output, context) {\n return {\n code: output.code !== undefined && output.code !== null ? output.code : undefined,\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1KinesisStreamSourceDescription = function (output, context) {\n return {\n DeliveryStartTimestamp: output.DeliveryStartTimestamp !== undefined && output.DeliveryStartTimestamp !== null\n ? new Date(Math.round(output.DeliveryStartTimestamp * 1000))\n : undefined,\n KinesisStreamARN: output.KinesisStreamARN !== undefined && output.KinesisStreamARN !== null ? output.KinesisStreamARN : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n };\n};\nvar deserializeAws_json1_1KMSEncryptionConfig = function (output, context) {\n return {\n AWSKMSKeyARN: output.AWSKMSKeyARN !== undefined && output.AWSKMSKeyARN !== null ? output.AWSKMSKeyARN : undefined,\n };\n};\nvar deserializeAws_json1_1LimitExceededException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ListDeliveryStreamsOutput = function (output, context) {\n return {\n DeliveryStreamNames: output.DeliveryStreamNames !== undefined && output.DeliveryStreamNames !== null\n ? deserializeAws_json1_1DeliveryStreamNameList(output.DeliveryStreamNames, context)\n : undefined,\n HasMoreDeliveryStreams: output.HasMoreDeliveryStreams !== undefined && output.HasMoreDeliveryStreams !== null\n ? output.HasMoreDeliveryStreams\n : undefined,\n };\n};\nvar deserializeAws_json1_1ListOfNonEmptyStrings = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ListOfNonEmptyStringsWithoutWhitespace = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ListTagsForDeliveryStreamOutput = function (output, context) {\n return {\n HasMoreTags: output.HasMoreTags !== undefined && output.HasMoreTags !== null ? output.HasMoreTags : undefined,\n Tags: output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1ListTagsForDeliveryStreamOutputTagList(output.Tags, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1ListTagsForDeliveryStreamOutputTagList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Tag(entry, context);\n });\n};\nvar deserializeAws_json1_1OpenXJsonSerDe = function (output, context) {\n return {\n CaseInsensitive: output.CaseInsensitive !== undefined && output.CaseInsensitive !== null ? output.CaseInsensitive : undefined,\n ColumnToJsonKeyMappings: output.ColumnToJsonKeyMappings !== undefined && output.ColumnToJsonKeyMappings !== null\n ? deserializeAws_json1_1ColumnToJsonKeyMappings(output.ColumnToJsonKeyMappings, context)\n : undefined,\n ConvertDotsInJsonKeysToUnderscores: output.ConvertDotsInJsonKeysToUnderscores !== undefined && output.ConvertDotsInJsonKeysToUnderscores !== null\n ? output.ConvertDotsInJsonKeysToUnderscores\n : undefined,\n };\n};\nvar deserializeAws_json1_1OrcSerDe = function (output, context) {\n return {\n BlockSizeBytes: output.BlockSizeBytes !== undefined && output.BlockSizeBytes !== null ? output.BlockSizeBytes : undefined,\n BloomFilterColumns: output.BloomFilterColumns !== undefined && output.BloomFilterColumns !== null\n ? deserializeAws_json1_1ListOfNonEmptyStringsWithoutWhitespace(output.BloomFilterColumns, context)\n : undefined,\n BloomFilterFalsePositiveProbability: output.BloomFilterFalsePositiveProbability !== undefined && output.BloomFilterFalsePositiveProbability !== null\n ? output.BloomFilterFalsePositiveProbability\n : undefined,\n Compression: output.Compression !== undefined && output.Compression !== null ? output.Compression : undefined,\n DictionaryKeyThreshold: output.DictionaryKeyThreshold !== undefined && output.DictionaryKeyThreshold !== null\n ? output.DictionaryKeyThreshold\n : undefined,\n EnablePadding: output.EnablePadding !== undefined && output.EnablePadding !== null ? output.EnablePadding : undefined,\n FormatVersion: output.FormatVersion !== undefined && output.FormatVersion !== null ? output.FormatVersion : undefined,\n PaddingTolerance: output.PaddingTolerance !== undefined && output.PaddingTolerance !== null ? output.PaddingTolerance : undefined,\n RowIndexStride: output.RowIndexStride !== undefined && output.RowIndexStride !== null ? output.RowIndexStride : undefined,\n StripeSizeBytes: output.StripeSizeBytes !== undefined && output.StripeSizeBytes !== null ? output.StripeSizeBytes : undefined,\n };\n};\nvar deserializeAws_json1_1OutputFormatConfiguration = function (output, context) {\n return {\n Serializer: output.Serializer !== undefined && output.Serializer !== null\n ? deserializeAws_json1_1Serializer(output.Serializer, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1ParquetSerDe = function (output, context) {\n return {\n BlockSizeBytes: output.BlockSizeBytes !== undefined && output.BlockSizeBytes !== null ? output.BlockSizeBytes : undefined,\n Compression: output.Compression !== undefined && output.Compression !== null ? output.Compression : undefined,\n EnableDictionaryCompression: output.EnableDictionaryCompression !== undefined && output.EnableDictionaryCompression !== null\n ? output.EnableDictionaryCompression\n : undefined,\n MaxPaddingBytes: output.MaxPaddingBytes !== undefined && output.MaxPaddingBytes !== null ? output.MaxPaddingBytes : undefined,\n PageSizeBytes: output.PageSizeBytes !== undefined && output.PageSizeBytes !== null ? output.PageSizeBytes : undefined,\n WriterVersion: output.WriterVersion !== undefined && output.WriterVersion !== null ? output.WriterVersion : undefined,\n };\n};\nvar deserializeAws_json1_1ProcessingConfiguration = function (output, context) {\n return {\n Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n Processors: output.Processors !== undefined && output.Processors !== null\n ? deserializeAws_json1_1ProcessorList(output.Processors, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1Processor = function (output, context) {\n return {\n Parameters: output.Parameters !== undefined && output.Parameters !== null\n ? deserializeAws_json1_1ProcessorParameterList(output.Parameters, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1ProcessorList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1Processor(entry, context);\n });\n};\nvar deserializeAws_json1_1ProcessorParameter = function (output, context) {\n return {\n ParameterName: output.ParameterName !== undefined && output.ParameterName !== null ? output.ParameterName : undefined,\n ParameterValue: output.ParameterValue !== undefined && output.ParameterValue !== null ? output.ParameterValue : undefined,\n };\n};\nvar deserializeAws_json1_1ProcessorParameterList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1ProcessorParameter(entry, context);\n });\n};\nvar deserializeAws_json1_1PutRecordBatchOutput = function (output, context) {\n return {\n Encrypted: output.Encrypted !== undefined && output.Encrypted !== null ? output.Encrypted : undefined,\n FailedPutCount: output.FailedPutCount !== undefined && output.FailedPutCount !== null ? output.FailedPutCount : undefined,\n RequestResponses: output.RequestResponses !== undefined && output.RequestResponses !== null\n ? deserializeAws_json1_1PutRecordBatchResponseEntryList(output.RequestResponses, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1PutRecordBatchResponseEntry = function (output, context) {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n ErrorMessage: output.ErrorMessage !== undefined && output.ErrorMessage !== null ? output.ErrorMessage : undefined,\n RecordId: output.RecordId !== undefined && output.RecordId !== null ? output.RecordId : undefined,\n };\n};\nvar deserializeAws_json1_1PutRecordBatchResponseEntryList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1PutRecordBatchResponseEntry(entry, context);\n });\n};\nvar deserializeAws_json1_1PutRecordOutput = function (output, context) {\n return {\n Encrypted: output.Encrypted !== undefined && output.Encrypted !== null ? output.Encrypted : undefined,\n RecordId: output.RecordId !== undefined && output.RecordId !== null ? output.RecordId : undefined,\n };\n};\nvar deserializeAws_json1_1RedshiftDestinationDescription = function (output, context) {\n return {\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n ClusterJDBCURL: output.ClusterJDBCURL !== undefined && output.ClusterJDBCURL !== null ? output.ClusterJDBCURL : undefined,\n CopyCommand: output.CopyCommand !== undefined && output.CopyCommand !== null\n ? deserializeAws_json1_1CopyCommand(output.CopyCommand, context)\n : undefined,\n ProcessingConfiguration: output.ProcessingConfiguration !== undefined && output.ProcessingConfiguration !== null\n ? deserializeAws_json1_1ProcessingConfiguration(output.ProcessingConfiguration, context)\n : undefined,\n RetryOptions: output.RetryOptions !== undefined && output.RetryOptions !== null\n ? deserializeAws_json1_1RedshiftRetryOptions(output.RetryOptions, context)\n : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n S3BackupDescription: output.S3BackupDescription !== undefined && output.S3BackupDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3BackupDescription, context)\n : undefined,\n S3BackupMode: output.S3BackupMode !== undefined && output.S3BackupMode !== null ? output.S3BackupMode : undefined,\n S3DestinationDescription: output.S3DestinationDescription !== undefined && output.S3DestinationDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3DestinationDescription, context)\n : undefined,\n Username: output.Username !== undefined && output.Username !== null ? output.Username : undefined,\n };\n};\nvar deserializeAws_json1_1RedshiftRetryOptions = function (output, context) {\n return {\n DurationInSeconds: output.DurationInSeconds !== undefined && output.DurationInSeconds !== null\n ? output.DurationInSeconds\n : undefined,\n };\n};\nvar deserializeAws_json1_1ResourceInUseException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ResourceNotFoundException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1S3DestinationDescription = function (output, context) {\n return {\n BucketARN: output.BucketARN !== undefined && output.BucketARN !== null ? output.BucketARN : undefined,\n BufferingHints: output.BufferingHints !== undefined && output.BufferingHints !== null\n ? deserializeAws_json1_1BufferingHints(output.BufferingHints, context)\n : undefined,\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n CompressionFormat: output.CompressionFormat !== undefined && output.CompressionFormat !== null\n ? output.CompressionFormat\n : undefined,\n EncryptionConfiguration: output.EncryptionConfiguration !== undefined && output.EncryptionConfiguration !== null\n ? deserializeAws_json1_1EncryptionConfiguration(output.EncryptionConfiguration, context)\n : undefined,\n ErrorOutputPrefix: output.ErrorOutputPrefix !== undefined && output.ErrorOutputPrefix !== null\n ? output.ErrorOutputPrefix\n : undefined,\n Prefix: output.Prefix !== undefined && output.Prefix !== null ? output.Prefix : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n };\n};\nvar deserializeAws_json1_1SchemaConfiguration = function (output, context) {\n return {\n CatalogId: output.CatalogId !== undefined && output.CatalogId !== null ? output.CatalogId : undefined,\n DatabaseName: output.DatabaseName !== undefined && output.DatabaseName !== null ? output.DatabaseName : undefined,\n Region: output.Region !== undefined && output.Region !== null ? output.Region : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n TableName: output.TableName !== undefined && output.TableName !== null ? output.TableName : undefined,\n VersionId: output.VersionId !== undefined && output.VersionId !== null ? output.VersionId : undefined,\n };\n};\nvar deserializeAws_json1_1SecurityGroupIdList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1Serializer = function (output, context) {\n return {\n OrcSerDe: output.OrcSerDe !== undefined && output.OrcSerDe !== null\n ? deserializeAws_json1_1OrcSerDe(output.OrcSerDe, context)\n : undefined,\n ParquetSerDe: output.ParquetSerDe !== undefined && output.ParquetSerDe !== null\n ? deserializeAws_json1_1ParquetSerDe(output.ParquetSerDe, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1ServiceUnavailableException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1SourceDescription = function (output, context) {\n return {\n KinesisStreamSourceDescription: output.KinesisStreamSourceDescription !== undefined && output.KinesisStreamSourceDescription !== null\n ? deserializeAws_json1_1KinesisStreamSourceDescription(output.KinesisStreamSourceDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SplunkDestinationDescription = function (output, context) {\n return {\n CloudWatchLoggingOptions: output.CloudWatchLoggingOptions !== undefined && output.CloudWatchLoggingOptions !== null\n ? deserializeAws_json1_1CloudWatchLoggingOptions(output.CloudWatchLoggingOptions, context)\n : undefined,\n HECAcknowledgmentTimeoutInSeconds: output.HECAcknowledgmentTimeoutInSeconds !== undefined && output.HECAcknowledgmentTimeoutInSeconds !== null\n ? output.HECAcknowledgmentTimeoutInSeconds\n : undefined,\n HECEndpoint: output.HECEndpoint !== undefined && output.HECEndpoint !== null ? output.HECEndpoint : undefined,\n HECEndpointType: output.HECEndpointType !== undefined && output.HECEndpointType !== null ? output.HECEndpointType : undefined,\n HECToken: output.HECToken !== undefined && output.HECToken !== null ? output.HECToken : undefined,\n ProcessingConfiguration: output.ProcessingConfiguration !== undefined && output.ProcessingConfiguration !== null\n ? deserializeAws_json1_1ProcessingConfiguration(output.ProcessingConfiguration, context)\n : undefined,\n RetryOptions: output.RetryOptions !== undefined && output.RetryOptions !== null\n ? deserializeAws_json1_1SplunkRetryOptions(output.RetryOptions, context)\n : undefined,\n S3BackupMode: output.S3BackupMode !== undefined && output.S3BackupMode !== null ? output.S3BackupMode : undefined,\n S3DestinationDescription: output.S3DestinationDescription !== undefined && output.S3DestinationDescription !== null\n ? deserializeAws_json1_1S3DestinationDescription(output.S3DestinationDescription, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SplunkRetryOptions = function (output, context) {\n return {\n DurationInSeconds: output.DurationInSeconds !== undefined && output.DurationInSeconds !== null\n ? output.DurationInSeconds\n : undefined,\n };\n};\nvar deserializeAws_json1_1StartDeliveryStreamEncryptionOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1StopDeliveryStreamEncryptionOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1SubnetIdList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1Tag = function (output, context) {\n return {\n Key: output.Key !== undefined && output.Key !== null ? output.Key : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n };\n};\nvar deserializeAws_json1_1TagDeliveryStreamOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1UntagDeliveryStreamOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1UpdateDestinationOutput = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1VpcConfigurationDescription = function (output, context) {\n return {\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n SecurityGroupIds: output.SecurityGroupIds !== undefined && output.SecurityGroupIds !== null\n ? deserializeAws_json1_1SecurityGroupIdList(output.SecurityGroupIds, context)\n : undefined,\n SubnetIds: output.SubnetIds !== undefined && output.SubnetIds !== null\n ? deserializeAws_json1_1SubnetIdList(output.SubnetIds, context)\n : undefined,\n VpcId: output.VpcId !== undefined && output.VpcId !== null ? output.VpcId : undefined,\n };\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar buildHttpRpcRequest = function (context, headers, path, resolvedHostname, body) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, contents;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n contents = {\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n path: path,\n headers: headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return [2 /*return*/, new __HttpRequest(contents)];\n }\n });\n}); };\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_json1_1.js.map","import { __assign } from \"tslib\";\nexport var InvalidInputException;\n(function (InvalidInputException) {\n InvalidInputException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidInputException || (InvalidInputException = {}));\nexport var Event;\n(function (Event) {\n Event.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Event || (Event = {}));\nexport var PutEventsRequest;\n(function (PutEventsRequest) {\n PutEventsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutEventsRequest || (PutEventsRequest = {}));\nexport var Item;\n(function (Item) {\n Item.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Item || (Item = {}));\nexport var PutItemsRequest;\n(function (PutItemsRequest) {\n PutItemsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutItemsRequest || (PutItemsRequest = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var User;\n(function (User) {\n User.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(User || (User = {}));\nexport var PutUsersRequest;\n(function (PutUsersRequest) {\n PutUsersRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutUsersRequest || (PutUsersRequest = {}));\n//# sourceMappingURL=models_0.js.map","import { __extends } from \"tslib\";\nimport { PutRecordBatchInput, PutRecordBatchOutput } from \"../models/models_0\";\nimport { deserializeAws_json1_1PutRecordBatchCommand, serializeAws_json1_1PutRecordBatchCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Writes multiple data records into a delivery stream in a single call, which can\n * achieve higher throughput per producer than when writing single records. To write single\n * data records into a delivery stream, use PutRecord. Applications using\n * these operations are referred to as producers.

\n *

For information about service quota, see Amazon Kinesis Data Firehose\n * Quota.

\n *

Each PutRecordBatch request supports up to 500 records. Each record\n * in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB\n * for the entire request. These limits cannot be changed.

\n *

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n * KB in size, and any kind of data. For example, it could be a segment from a log file,\n * geographic location data, website clickstream data, and so on.

\n *

Kinesis Data Firehose buffers records before delivering them to the destination. To\n * disambiguate the data blobs at the destination, a common solution is to use delimiters in\n * the data, such as a newline (\\n) or some other character unique within the\n * data. This allows the consumer application to parse individual data items when reading the\n * data from the destination.

\n *

The PutRecordBatch response includes a count of failed records,\n * FailedPutCount, and an array of responses, RequestResponses.\n * Even if the PutRecordBatch call succeeds, the value of\n * FailedPutCount may be greater than 0, indicating that there are records for\n * which the operation didn't succeed. Each entry in the RequestResponses array\n * provides additional information about the processed record. It directly correlates with a\n * record in the request array using the same ordering, from the top to the bottom. The\n * response array always includes the same number of records as the request array.\n * RequestResponses includes both successfully and unsuccessfully processed\n * records. Kinesis Data Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing\n * of subsequent records.

\n *

A successfully processed record includes a RecordId value, which is\n * unique for the record. An unsuccessfully processed record includes ErrorCode\n * and ErrorMessage values. ErrorCode reflects the type of error,\n * and is one of the following values: ServiceUnavailableException or\n * InternalFailure. ErrorMessage provides more detailed\n * information about the error.

\n *

If there is an internal server error or a timeout, the write might have completed or\n * it might have failed. If FailedPutCount is greater than 0, retry the request,\n * resending only those records that might have failed processing. This minimizes the possible\n * duplicate records and also reduces the total bytes sent (and corresponding charges). We\n * recommend that you handle any duplicates at the destination.

\n *

If PutRecordBatch throws ServiceUnavailableException,\n * back off and retry. If the exception persists, it is possible that the throughput limits\n * have been exceeded for the delivery stream.

\n *\n *

Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they\n * are added to a delivery stream as it attempts to send the records to the destination. If\n * the destination is unreachable for more than 24 hours, the data is no longer\n * available.

\n * \n *

Don't concatenate two or more base64 strings to form the data fields of your records.\n * Instead, concatenate the raw data, then perform base64 encoding.

\n *
\n */\nvar PutRecordBatchCommand = /** @class */ (function (_super) {\n __extends(PutRecordBatchCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutRecordBatchCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutRecordBatchCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"FirehoseClient\";\n var commandName = \"PutRecordBatchCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutRecordBatchInput.filterSensitiveLog,\n outputFilterSensitiveLog: PutRecordBatchOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutRecordBatchCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1PutRecordBatchCommand(input, context);\n };\n PutRecordBatchCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1PutRecordBatchCommand(output, context);\n };\n return PutRecordBatchCommand;\n}($Command));\nexport { PutRecordBatchCommand };\n//# sourceMappingURL=PutRecordBatchCommand.js.map","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"firehose.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"firehose.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"firehose.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"firehose.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"firehose.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"af-south-1\":\n regionInfo = {\n hostname: \"firehose.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"firehose.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"firehose.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"firehose.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"firehose.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"firehose.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"firehose.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"firehose.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"firehose.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"firehose.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"firehose.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"firehose.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"firehose.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"firehose.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"firehose.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"firehose.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"firehose-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"firehose-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-east-1\":\n regionInfo = {\n hostname: \"firehose-fips.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-east-1\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"firehose-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"fips-us-west-1\":\n regionInfo = {\n hostname: \"firehose-fips.us-west-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"firehose-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"firehose.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"firehose.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"firehose.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"firehose.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"firehose.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"firehose.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"firehose.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"firehose.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"firehose\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2015-08-04\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Firehose\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n * Amazon Kinesis Data Firehose API Reference\n *

Amazon Kinesis Data Firehose is a fully managed service that delivers real-time\n * streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon\n * Elasticsearch Service (Amazon ES), Amazon Redshift, and Splunk.

\n */\nvar FirehoseClient = /** @class */ (function (_super) {\n __extends(FirehoseClient, _super);\n function FirehoseClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n FirehoseClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return FirehoseClient;\n}(__Client));\nexport { FirehoseClient };\n//# sourceMappingURL=FirehoseClient.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __extends } from \"tslib\";\nimport { AnalyticsAction, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AWSKinesisProvider } from './AWSKinesisProvider';\nimport { PutRecordBatchCommand, FirehoseClient, } from '@aws-sdk/client-firehose';\nimport { fromUtf8 } from '@aws-sdk/util-utf8-browser';\nimport { getAnalyticsUserAgent } from '../utils/UserAgent';\nvar logger = new Logger('AWSKineisFirehoseProvider');\nvar AWSKinesisFirehoseProvider = /** @class */ (function (_super) {\n __extends(AWSKinesisFirehoseProvider, _super);\n function AWSKinesisFirehoseProvider(config) {\n return _super.call(this, config) || this;\n }\n /**\n * get provider name of the plugin\n */\n AWSKinesisFirehoseProvider.prototype.getProviderName = function () {\n return 'AWSKinesisFirehose';\n };\n AWSKinesisFirehoseProvider.prototype._sendEvents = function (group) {\n var _this = this;\n if (group.length === 0) {\n return;\n }\n var _a = group[0], config = _a.config, credentials = _a.credentials;\n var initClients = this._init(config, credentials);\n if (!initClients)\n return false;\n var records = {};\n group.map(function (params) {\n // split by streamName\n var evt = params.event;\n var streamName = evt.streamName, data = evt.data;\n if (records[streamName] === undefined) {\n records[streamName] = [];\n }\n var bufferData = data && typeof data !== 'string' ? JSON.stringify(data) : data;\n var Data = fromUtf8(bufferData);\n var record = { Data: Data };\n records[streamName].push(record);\n });\n Object.keys(records).map(function (streamName) {\n logger.debug('putting records to kinesis', streamName, 'with records', records[streamName]);\n _this._kinesisFirehose\n .send(new PutRecordBatchCommand({\n Records: records[streamName],\n DeliveryStreamName: streamName,\n }))\n .then(function (res) { return logger.debug('Upload records to stream', streamName); })\n .catch(function (err) { return logger.debug('Failed to upload records to Kinesis', err); });\n });\n };\n AWSKinesisFirehoseProvider.prototype._init = function (config, credentials) {\n logger.debug('init clients');\n if (this._kinesisFirehose &&\n this._config.credentials &&\n this._config.credentials.sessionToken === credentials.sessionToken &&\n this._config.credentials.identityId === credentials.identityId) {\n logger.debug('no change for analytics config, directly return from init');\n return true;\n }\n this._config.credentials = credentials;\n var region = config.region;\n return this._initFirehose(region, credentials);\n };\n AWSKinesisFirehoseProvider.prototype._initFirehose = function (region, credentials) {\n logger.debug('initialize kinesis firehose with credentials', credentials);\n this._kinesisFirehose = new FirehoseClient({\n apiVersion: '2015-08-04',\n region: region,\n credentials: credentials,\n customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),\n });\n return true;\n };\n return AWSKinesisFirehoseProvider;\n}(AWSKinesisProvider));\nexport { AWSKinesisFirehoseProvider };\n//# sourceMappingURL=AWSKinesisFirehoseProvider.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { LazyJsonString as __LazyJsonString } from \"@aws-sdk/smithy-client\";\nexport var serializeAws_restJson1PutEventsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/json\",\n };\n resolvedPath = \"/events\";\n body = JSON.stringify(__assign(__assign(__assign(__assign({}, (input.eventList !== undefined &&\n input.eventList !== null && { eventList: serializeAws_restJson1EventList(input.eventList, context) })), (input.sessionId !== undefined && input.sessionId !== null && { sessionId: input.sessionId })), (input.trackingId !== undefined && input.trackingId !== null && { trackingId: input.trackingId })), (input.userId !== undefined && input.userId !== null && { userId: input.userId })));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1PutItemsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/json\",\n };\n resolvedPath = \"/items\";\n body = JSON.stringify(__assign(__assign({}, (input.datasetArn !== undefined && input.datasetArn !== null && { datasetArn: input.datasetArn })), (input.items !== undefined &&\n input.items !== null && { items: serializeAws_restJson1ItemList(input.items, context) })));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1PutUsersCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/json\",\n };\n resolvedPath = \"/users\";\n body = JSON.stringify(__assign(__assign({}, (input.datasetArn !== undefined && input.datasetArn !== null && { datasetArn: input.datasetArn })), (input.users !== undefined &&\n input.users !== null && { users: serializeAws_restJson1UserList(input.users, context) })));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var deserializeAws_restJson1PutEventsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restJson1PutEventsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restJson1PutEventsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidInputException\": return [3 /*break*/, 2];\n case \"com.amazonaws.personalizeevents#InvalidInputException\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restJson1InvalidInputExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restJson1PutItemsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restJson1PutItemsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restJson1PutItemsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidInputException\": return [3 /*break*/, 2];\n case \"com.amazonaws.personalizeevents#InvalidInputException\": return [3 /*break*/, 2];\n case \"ResourceNotFoundException\": return [3 /*break*/, 4];\n case \"com.amazonaws.personalizeevents#ResourceNotFoundException\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restJson1InvalidInputExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restJson1PutUsersCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restJson1PutUsersCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restJson1PutUsersCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidInputException\": return [3 /*break*/, 2];\n case \"com.amazonaws.personalizeevents#InvalidInputException\": return [3 /*break*/, 2];\n case \"ResourceNotFoundException\": return [3 /*break*/, 4];\n case \"com.amazonaws.personalizeevents#ResourceNotFoundException\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restJson1InvalidInputExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_restJson1InvalidInputExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"InvalidInputException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n message: undefined,\n };\n data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = data.message;\n }\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restJson1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n message: undefined,\n };\n data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = data.message;\n }\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_restJson1Event = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.eventId !== undefined && input.eventId !== null && { eventId: input.eventId })), (input.eventType !== undefined && input.eventType !== null && { eventType: input.eventType })), (input.eventValue !== undefined && input.eventValue !== null && { eventValue: input.eventValue })), (input.impression !== undefined &&\n input.impression !== null && { impression: serializeAws_restJson1Impression(input.impression, context) })), (input.itemId !== undefined && input.itemId !== null && { itemId: input.itemId })), (input.properties !== undefined &&\n input.properties !== null && { properties: __LazyJsonString.fromObject(input.properties) })), (input.recommendationId !== undefined &&\n input.recommendationId !== null && { recommendationId: input.recommendationId })), (input.sentAt !== undefined && input.sentAt !== null && { sentAt: Math.round(input.sentAt.getTime() / 1000) }));\n};\nvar serializeAws_restJson1EventList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_restJson1Event(entry, context);\n });\n};\nvar serializeAws_restJson1Impression = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_restJson1Item = function (input, context) {\n return __assign(__assign({}, (input.itemId !== undefined && input.itemId !== null && { itemId: input.itemId })), (input.properties !== undefined &&\n input.properties !== null && { properties: __LazyJsonString.fromObject(input.properties) }));\n};\nvar serializeAws_restJson1ItemList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_restJson1Item(entry, context);\n });\n};\nvar serializeAws_restJson1User = function (input, context) {\n return __assign(__assign({}, (input.properties !== undefined &&\n input.properties !== null && { properties: __LazyJsonString.fromObject(input.properties) })), (input.userId !== undefined && input.userId !== null && { userId: input.userId }));\n};\nvar serializeAws_restJson1UserList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_restJson1User(entry, context);\n });\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar isSerializableHeaderValue = function (value) {\n return value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_restJson1.js.map","var HTML5_MEDIA_EVENT;\n(function (HTML5_MEDIA_EVENT) {\n HTML5_MEDIA_EVENT[\"PLAY\"] = \"play\";\n HTML5_MEDIA_EVENT[\"PAUSE\"] = \"pause\";\n HTML5_MEDIA_EVENT[\"ENDED\"] = \"Ended\";\n})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));\nvar MEDIA_TYPE;\n(function (MEDIA_TYPE) {\n MEDIA_TYPE[\"IFRAME\"] = \"IFRAME\";\n MEDIA_TYPE[\"VIDEO\"] = \"VIDEO\";\n MEDIA_TYPE[\"AUDIO\"] = \"AUDIO\";\n})(MEDIA_TYPE || (MEDIA_TYPE = {}));\nvar EVENT_TYPE;\n(function (EVENT_TYPE) {\n EVENT_TYPE[\"PLAY\"] = \"Play\";\n EVENT_TYPE[\"ENDED\"] = \"Ended\";\n EVENT_TYPE[\"PAUSE\"] = \"Pause\";\n EVENT_TYPE[\"TIME_WATCHED\"] = \"TimeWatched\";\n})(EVENT_TYPE || (EVENT_TYPE = {}));\nvar MediaAutoTrack = /** @class */ (function () {\n function MediaAutoTrack(params, provider) {\n var _a;\n this.eventActionMapping = (_a = {},\n _a[EVENT_TYPE.ENDED] = this.endedEventAction.bind(this),\n _a[EVENT_TYPE.PLAY] = this.playEventAction.bind(this),\n _a[EVENT_TYPE.PAUSE] = this.pauseEventAction.bind(this),\n _a);\n var eventData = params.eventData;\n this._params = params;\n this._mediaElement = document.getElementById(eventData.properties['domElementId']);\n this._started = false;\n this._provider = provider;\n var mediaTrackFunMapping = {\n IFRAME: this._iframeMediaTracker,\n VIDEO: this._html5MediaTracker,\n AUDIO: this._html5MediaTracker,\n };\n mediaTrackFunMapping[this._mediaElement.tagName].bind(this)();\n this._initYoutubeFrame();\n }\n MediaAutoTrack.prototype._initYoutubeFrame = function () {\n this._youTubeIframeLoader = {\n src: 'https://www.youtube.com/iframe_api',\n loading: false,\n loaded: false,\n listeners: [],\n load: function (callback) {\n var _this = this;\n this.listeners.push(callback);\n if (this.loaded) {\n setTimeout(function () {\n _this.done();\n });\n return;\n }\n if (this.loading) {\n return;\n }\n this.loading = true;\n window['onYouTubeIframeAPIReady'] = function () {\n _this.loaded = true;\n _this.done();\n };\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = this.src;\n document.body.appendChild(script);\n },\n done: function () {\n delete window['onYouTubeIframeAPIReady'];\n while (this.listeners.length) {\n this.listeners.pop()(window['YT']);\n }\n },\n };\n };\n MediaAutoTrack.prototype._iframeMediaTracker = function () {\n var that = this;\n setInterval(function () {\n if (that._started) {\n that.recordEvent(MEDIA_TYPE.IFRAME, EVENT_TYPE.TIME_WATCHED);\n }\n }, 3 * 1000);\n this._youTubeIframeLoader.load(function (YT) {\n that._iframePlayer = new YT.Player(that._mediaElement.id, {\n events: { onStateChange: that._onPlayerStateChange.bind(that) },\n });\n });\n };\n MediaAutoTrack.prototype._onPlayerStateChange = function (event) {\n var iframeEventMapping = {\n 0: EVENT_TYPE.ENDED,\n 1: EVENT_TYPE.PLAY,\n 2: EVENT_TYPE.PAUSE,\n };\n var eventType = iframeEventMapping[event.data];\n if (eventType) {\n this.eventActionMapping[eventType](MEDIA_TYPE.IFRAME);\n }\n };\n MediaAutoTrack.prototype._html5MediaTracker = function () {\n var that = this;\n setInterval(function () {\n if (that._started) {\n that.recordEvent(MEDIA_TYPE.VIDEO, EVENT_TYPE.TIME_WATCHED);\n }\n }, 3 * 1000);\n this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.PLAY, function () {\n that.eventActionMapping[EVENT_TYPE.PLAY](MEDIA_TYPE.VIDEO);\n }, false);\n this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.PAUSE, function () {\n that.eventActionMapping[EVENT_TYPE.PAUSE](MEDIA_TYPE.VIDEO);\n }, false);\n this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.ENDED, function () {\n that.eventActionMapping[EVENT_TYPE.ENDED](MEDIA_TYPE.VIDEO);\n }, false);\n };\n MediaAutoTrack.prototype.playEventAction = function (mediaType) {\n this._started = true;\n this.recordEvent(mediaType, EVENT_TYPE.PLAY);\n };\n MediaAutoTrack.prototype.pauseEventAction = function (mediaType) {\n this._started = false;\n this.recordEvent(mediaType, EVENT_TYPE.PAUSE);\n };\n MediaAutoTrack.prototype.endedEventAction = function (mediaType) {\n this._started = false;\n this.recordEvent(mediaType, EVENT_TYPE.ENDED);\n };\n MediaAutoTrack.prototype.recordEvent = function (mediaType, eventType) {\n var newParams = Object.assign({}, this._params);\n var eventData = newParams.eventData;\n eventData.eventType = eventType;\n var currentPlayTime;\n if (mediaType === MEDIA_TYPE.VIDEO) {\n currentPlayTime = this._mediaElement.currentTime;\n eventData.properties.duration = this._mediaElement.duration;\n }\n else {\n currentPlayTime = this._financial(this._iframePlayer.getCurrentTime());\n eventData.properties.duration = this._financial(this._iframePlayer.getDuration());\n }\n var percentage = parseFloat(currentPlayTime) / parseFloat(eventData.properties.duration);\n eventData.properties.eventValue = Number(percentage.toFixed(4));\n delete eventData.properties.domElementId;\n this._provider.putToBuffer(newParams);\n };\n MediaAutoTrack.prototype._financial = function (x) {\n return Number.parseFloat(x).toFixed(4);\n };\n return MediaAutoTrack;\n}());\nexport { MediaAutoTrack };\n//# sourceMappingURL=MediaAutoTrack.js.map","import { __extends } from \"tslib\";\nimport { PutEventsRequest } from \"../models/models_0\";\nimport { deserializeAws_restJson1PutEventsCommand, serializeAws_restJson1PutEventsCommand, } from \"../protocols/Aws_restJson1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Records user interaction event data. For more information see event-record-api.

\n */\nvar PutEventsCommand = /** @class */ (function (_super) {\n __extends(PutEventsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutEventsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutEventsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"PersonalizeEventsClient\";\n var commandName = \"PutEventsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutEventsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: function (output) { return output; },\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutEventsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1PutEventsCommand(input, context);\n };\n PutEventsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1PutEventsCommand(output, context);\n };\n return PutEventsCommand;\n}($Command));\nexport { PutEventsCommand };\n//# sourceMappingURL=PutEventsCommand.js.map","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"personalize-events.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"personalize-events.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"personalize-events.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"personalize-events.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"personalize-events.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"personalize\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2018-03-22\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Personalize Events\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n *

Amazon Personalize can consume real-time user event data, such as stream or click data, and use\n * it for model training either alone or combined with historical data. For more information see recording-events.

\n */\nvar PersonalizeEventsClient = /** @class */ (function (_super) {\n __extends(PersonalizeEventsClient, _super);\n function PersonalizeEventsClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n PersonalizeEventsClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return PersonalizeEventsClient;\n}(__Client));\nexport { PersonalizeEventsClient };\n//# sourceMappingURL=PersonalizeEventsClient.js.map","import isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { v1 as uuid } from 'uuid';\nimport { ConsoleLogger as Logger, browserOrNode } from '@aws-amplify/core';\nimport { Cache } from '@aws-amplify/cache';\nvar PERSONALIZE_CACHE = '_awsct';\nvar PERSONALIZE_CACHE_USERID = '_awsct_uid';\nvar PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';\nvar DEFAULT_CACHE_PREFIX = 'personalize';\nvar TIMER_INTERVAL = 30 * 1000;\nvar DELIMITER = '.';\nvar CACHE_EXPIRY_IN_DAYS = 7;\nvar logger = new Logger('AmazonPersonalizeProvider');\nvar SessionInfoManager = /** @class */ (function () {\n function SessionInfoManager(prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n this._isBrowser = browserOrNode().isBrowser;\n this._timerKey = uuid().substr(0, 15);\n this._refreshTimer();\n }\n SessionInfoManager.prototype._refreshTimer = function () {\n if (this._timer) {\n clearInterval(this._timer);\n }\n var that = this;\n this._timer = setInterval(function () {\n that._timerKey = uuid().substr(0, 15);\n }, TIMER_INTERVAL);\n };\n SessionInfoManager.prototype.storeValue = function (key, value) {\n var today = new Date();\n var expire = new Date();\n expire.setTime(today.getTime() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);\n Cache.setItem(this._getCachePrefix(key), value, {\n expires: expire.getTime(),\n });\n };\n SessionInfoManager.prototype.retrieveValue = function (key) {\n return Cache.getItem(this._getCachePrefix(key));\n };\n SessionInfoManager.prototype._getCachePrefix = function (key) {\n if (this._isBrowser) {\n return key + DELIMITER + window.location.host;\n }\n return DEFAULT_CACHE_PREFIX;\n };\n SessionInfoManager.prototype.getTimerKey = function () {\n return this._timerKey;\n };\n SessionInfoManager.prototype.updateSessionInfo = function (userId, sessionInfo) {\n var existUserId = sessionInfo.userId;\n var existSessionId = sessionInfo.sessionId;\n if (this._isRequireNewSession(userId, existUserId, existSessionId)) {\n var newSessionId = uuid();\n this.storeValue(PERSONALIZE_CACHE_USERID, userId);\n this.storeValue(PERSONALIZE_CACHE_SESSIONID, newSessionId);\n sessionInfo.sessionId = newSessionId;\n }\n else if (this._isRequireUpdateSessionInfo(userId, existUserId, existSessionId)) {\n this.storeValue(PERSONALIZE_CACHE_USERID, userId);\n }\n sessionInfo.userId = userId;\n };\n SessionInfoManager.prototype._isRequireUpdateSessionInfo = function (userId, cachedSessionUserId, cachedSessionSessionId) {\n // anonymouse => sign in : hasSession && s_userId == null && curr_userId !=null\n var isNoCachedSession = isEmpty(cachedSessionSessionId);\n return (!isNoCachedSession && isEmpty(cachedSessionUserId) && !isEmpty(userId));\n };\n SessionInfoManager.prototype.retrieveSessionInfo = function (trackingId) {\n var sessionInfo = {};\n sessionInfo.trackingId = trackingId;\n sessionInfo.sessionId = this.retrieveValue(PERSONALIZE_CACHE_SESSIONID);\n sessionInfo.userId = this.retrieveValue(PERSONALIZE_CACHE_USERID);\n if (isEmpty(sessionInfo.sessionId)) {\n sessionInfo.sessionId = uuid();\n this.storeValue(PERSONALIZE_CACHE_SESSIONID, sessionInfo.sessionId);\n }\n this.storeValue(PERSONALIZE_CACHE, trackingId);\n return sessionInfo;\n };\n SessionInfoManager.prototype._isRequireNewSession = function (userId, cachedSessionUserId, cachedSessionSessionId) {\n // new session => 1. no cached session info 2. signOut: s_userId !=null && curr_userId ==null\n // 3. switch account: s_userId !=null && curr_userId !=null && s_userId != curr_userId\n var isNoCachedSession = isEmpty(cachedSessionSessionId);\n var isSignoutCase = isEmpty(userId) && !isEmpty(cachedSessionUserId);\n var isSwitchUserCase = !isEmpty(userId) &&\n !isEmpty(cachedSessionUserId) &&\n !isEqual(userId, cachedSessionUserId);\n return isNoCachedSession || isSignoutCase || isSwitchUserCase;\n };\n return SessionInfoManager;\n}());\nexport { SessionInfoManager };\n//# sourceMappingURL=SessionInfoManager.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { ConsoleLogger as Logger, Credentials, browserOrNode, AnalyticsAction, } from '@aws-amplify/core';\nimport { PersonalizeEventsClient, PutEventsCommand, } from '@aws-sdk/client-personalize-events';\nimport { SessionInfoManager, MediaAutoTrack, } from './AmazonPersonalizeHelper';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { getAnalyticsUserAgent } from '../utils/UserAgent';\nvar logger = new Logger('AmazonPersonalizeProvider');\n// events buffer\nvar FLUSH_SIZE = 5;\nvar FLUSH_SIZE_THRESHHOLD = 10;\nvar FLUSH_INTERVAL = 5 * 1000; // 5s\nvar IDENTIFY_EVENT = 'Identify';\nvar AmazonPersonalizeProvider = /** @class */ (function () {\n function AmazonPersonalizeProvider(config) {\n this._buffer = [];\n this._config = config ? config : {};\n this._config.flushSize =\n this._config.flushSize > 0 &&\n this._config.flushSize <= FLUSH_SIZE_THRESHHOLD\n ? this._config.flushSize\n : FLUSH_SIZE;\n this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL;\n this._sessionManager = new SessionInfoManager();\n if (!isEmpty(this._config.trackingId)) {\n this._sessionInfo = this._sessionManager.retrieveSessionInfo(this._config.trackingId);\n }\n this._isBrowser = browserOrNode().isBrowser;\n // flush event buffer\n this._setupTimer();\n }\n AmazonPersonalizeProvider.prototype._setupTimer = function () {\n if (this._timer) {\n clearInterval(this._timer);\n }\n var flushInterval = this._config.flushInterval;\n var that = this;\n this._timer = setInterval(function () {\n that._sendFromBuffer();\n }, flushInterval);\n };\n /**\n * Record event\n * @param eventType - type of the event action. e.g. \"Click\"\n * @param properties - properties of the event\n * @return Promise\n */\n AmazonPersonalizeProvider.prototype.record = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, _a, eventType, properties, requestParams, isLoaded;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._getCredentials()];\n case 1:\n credentials = _b.sent();\n if (!credentials)\n return [2 /*return*/, Promise.resolve(false)];\n Object.assign(params, {\n config: this._config,\n credentials: credentials,\n sentAt: new Date(),\n });\n _a = params.event, eventType = _a.eventType, properties = _a.properties;\n if (eventType === IDENTIFY_EVENT) {\n this._sessionManager.updateSessionInfo(properties && properties.userId ? properties.userId : '', this._sessionInfo);\n return [2 /*return*/];\n }\n else if (!isEmpty(params.event.userId)) {\n this._sessionManager.updateSessionInfo(params.event.userId, this._sessionInfo);\n }\n requestParams = this.generateRequestParams(params, this._sessionInfo);\n if (!(eventType === 'MediaAutoTrack')) return [3 /*break*/, 7];\n if (!this._isBrowser) return [3 /*break*/, 5];\n if (!!isEmpty(get(requestParams, 'eventData.properties.domElementId', null))) return [3 /*break*/, 3];\n return [4 /*yield*/, this.isElementFullyLoaded(this.loadElement, requestParams.eventData.properties['domElementId'], 500, 5)];\n case 2:\n isLoaded = _b.sent();\n if (isLoaded) {\n new MediaAutoTrack(requestParams, this);\n }\n else {\n logger.debug('Cannot find the media element.');\n }\n return [3 /*break*/, 4];\n case 3:\n logger.debug(\"Missing domElementId field in 'properties' for MediaAutoTrack event type.\");\n _b.label = 4;\n case 4: return [3 /*break*/, 6];\n case 5:\n logger.debug('MediaAutoTrack only for browser');\n _b.label = 6;\n case 6: return [2 /*return*/];\n case 7: return [2 /*return*/, this.putToBuffer(requestParams)];\n }\n });\n });\n };\n AmazonPersonalizeProvider.prototype.loadElement = function (domId) {\n return new Promise(function (resolve, reject) {\n if (document.getElementById(domId) &&\n document.getElementById(domId).clientHeight) {\n return resolve(true);\n }\n else {\n return reject(true);\n }\n });\n };\n AmazonPersonalizeProvider.prototype.isElementFullyLoaded = function (operation, params, delay, times) {\n var _this = this;\n var wait = function (ms) { return new Promise(function (r) { return setTimeout(r, ms); }); };\n return new Promise(function (resolve, reject) {\n return operation(params)\n .then(resolve)\n .catch(function (reason) {\n if (times - 1 > 0) {\n return wait(delay)\n .then(_this.isElementFullyLoaded.bind(null, operation, params, delay, times - 1))\n .then(resolve)\n .catch(reject);\n }\n return reject(reason);\n });\n });\n };\n /**\n * get the category of the plugin\n */\n AmazonPersonalizeProvider.prototype.getCategory = function () {\n return 'Analytics';\n };\n /**\n * get provider name of the plugin\n */\n AmazonPersonalizeProvider.prototype.getProviderName = function () {\n return 'AmazonPersonalize';\n };\n /**\n * configure the plugin\n * @param {Object} config - configuration\n */\n AmazonPersonalizeProvider.prototype.configure = function (config) {\n logger.debug('configure Analytics', config);\n var conf = config ? config : {};\n this._config = Object.assign({}, this._config, conf);\n if (!isEmpty(this._config.trackingId)) {\n this._sessionInfo = this._sessionManager.retrieveSessionInfo(this._config.trackingId);\n }\n this._setupTimer();\n return this._config;\n };\n /**\n * Generate the requestParams from customer input params and sessionInfo\n * @private\n * @param eventData - customer input for event data\n * @param api - api name\n * @return RequestParams - wrapper object with all information required for make request\n */\n AmazonPersonalizeProvider.prototype.generateRequestParams = function (params, sessionInfo) {\n var requestParams = {};\n var _a = params.event, eventType = _a.eventType, properties = _a.properties;\n requestParams.eventData = { eventType: eventType, properties: properties };\n requestParams.sessionInfo = sessionInfo;\n requestParams.sentAt = params.sentAt;\n requestParams.credentials = params.credentials;\n requestParams.config = params.config;\n return requestParams;\n };\n /**\n * record an event\n * @param {Object} params - the params of an event\n */\n AmazonPersonalizeProvider.prototype._sendEvents = function (group) {\n var groupLen = group.length;\n if (groupLen === 0) {\n logger.debug('events array is empty, directly return');\n return;\n }\n var _a = group[0], config = _a.config, credentials = _a.credentials, sessionInfo = _a.sessionInfo;\n var initClients = this._init(config, credentials);\n if (!initClients)\n return false;\n if (groupLen > 0) {\n var events = [];\n for (var i = 0; i < groupLen; i += 1) {\n var params = group.shift();\n var eventPayload = this._generateSingleRecordPayload(params, sessionInfo);\n events.push(eventPayload);\n }\n var payload_1 = {};\n payload_1.trackingId = sessionInfo.trackingId;\n payload_1.sessionId = sessionInfo.sessionId;\n payload_1.userId = sessionInfo.userId;\n payload_1.eventList = [];\n events.forEach(function (event) {\n // @ts-ignore\n payload_1.eventList.push(event);\n });\n var command = new PutEventsCommand(payload_1);\n this._personalize.send(command, function (err) {\n if (err)\n logger.debug('Failed to call putEvents in Personalize', err);\n else\n logger.debug('Put events');\n });\n }\n };\n /**\n * Put event into buffer\n * @private\n * @param params - params for the event recording\n */\n AmazonPersonalizeProvider.prototype.putToBuffer = function (params) {\n if (this._buffer.length < this._config.flushSize) {\n this._buffer.push(params);\n }\n else {\n this._buffer.push(params);\n this._sendFromBuffer();\n }\n return Promise.resolve(true);\n };\n /**\n * flush the buffer and batch sending the request\n * @private\n * @param eventsParams - the buffer for cache the payload\n */\n AmazonPersonalizeProvider.prototype._sendFromBuffer = function () {\n var _this = this;\n var size = this._buffer.length;\n if (size <= 0)\n return;\n var eventsGroups = [];\n var preCred = null;\n var group = [];\n for (var i = 0; i < size; i += 1) {\n var currRequestParams = this._buffer.shift();\n var cred = currRequestParams.credentials;\n var sessionInfo = currRequestParams.sessionInfo;\n if (i === 0) {\n group.push(currRequestParams);\n preCred = cred;\n }\n else {\n if (isEqual(sessionInfo, this._sessionInfo) &&\n cred.sessionToken === preCred.sessionToken &&\n cred.identityId === preCred.identityId) {\n logger.debug('no change for cred, put event in the same group');\n group.push(currRequestParams);\n }\n else {\n eventsGroups.push(group);\n group = [];\n group.push(currRequestParams);\n preCred = cred;\n this._sessionInfo = sessionInfo;\n }\n }\n }\n eventsGroups.push(group);\n eventsGroups.map(function (group) {\n _this._sendEvents(group);\n });\n };\n /**\n * Generate the record payload for single event\n * @private\n * @param params - RequestParams\n */\n AmazonPersonalizeProvider.prototype._generateSingleRecordPayload = function (params, sessionInfo) {\n var eventData = params.eventData, sentAt = params.sentAt;\n var trackPayload = {};\n trackPayload.sentAt = sentAt;\n trackPayload.properties =\n eventData.properties && JSON.stringify(eventData.properties);\n trackPayload.eventId =\n this._sessionManager.getTimerKey() + sessionInfo.sessionId;\n trackPayload.eventType = eventData.eventType;\n return trackPayload;\n };\n /**\n * Initialize the personalize client\n * @private\n * @param params - RequestParams\n */\n AmazonPersonalizeProvider.prototype._init = function (config, credentials) {\n logger.debug('init clients');\n if (this._personalize &&\n this._config.credentials &&\n this._config.credentials.sessionToken === credentials.sessionToken &&\n this._config.credentials.identityId === credentials.identityId) {\n logger.debug('no change for analytics config, directly return from init');\n return true;\n }\n this._config.credentials = credentials;\n var region = config.region;\n logger.debug('initialize personalize with credentials', credentials);\n this._personalize = new PersonalizeEventsClient({\n region: region,\n credentials: credentials,\n customUserAgent: getAnalyticsUserAgent(AnalyticsAction.Record),\n });\n return true;\n };\n /**\n * check if current credentials exists\n * @private\n */\n AmazonPersonalizeProvider.prototype._getCredentials = function () {\n var that = this;\n return Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return null;\n logger.debug('set credentials for analytics', that._config.credentials);\n return Credentials.shear(credentials);\n })\n .catch(function (err) {\n logger.debug('ensure credentials error', err);\n return null;\n });\n };\n return AmazonPersonalizeProvider;\n}());\nexport { AmazonPersonalizeProvider };\n//# sourceMappingURL=AmazonPersonalizeProvider.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"CONNECTION_FAILED\"] = \"Connection failed\";\n CONTROL_MSG[\"REALTIME_SUBSCRIPTION_INIT_ERROR\"] = \"AppSync Realtime subscription init error\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n})(CONTROL_MSG || (CONTROL_MSG = {}));\n/** @enum {string} */\nexport var ConnectionState;\n(function (ConnectionState) {\n /*\n * The connection is alive and healthy\n */\n ConnectionState[\"Connected\"] = \"Connected\";\n /*\n * The connection is alive, but the connection is offline\n */\n ConnectionState[\"ConnectedPendingNetwork\"] = \"ConnectedPendingNetwork\";\n /*\n * The connection has been disconnected while in use\n */\n ConnectionState[\"ConnectionDisrupted\"] = \"ConnectionDisrupted\";\n /*\n * The connection has been disconnected and the network is offline\n */\n ConnectionState[\"ConnectionDisruptedPendingNetwork\"] = \"ConnectionDisruptedPendingNetwork\";\n /*\n * The connection is in the process of connecting\n */\n ConnectionState[\"Connecting\"] = \"Connecting\";\n /*\n * The connection is not in use and is being disconnected\n */\n ConnectionState[\"ConnectedPendingDisconnect\"] = \"ConnectedPendingDisconnect\";\n /*\n * The connection is not in use and has been disconnected\n */\n ConnectionState[\"Disconnected\"] = \"Disconnected\";\n /*\n * The connection is alive, but a keep alive message has been missed\n */\n ConnectionState[\"ConnectedPendingKeepAlive\"] = \"ConnectedPendingKeepAlive\";\n})(ConnectionState || (ConnectionState = {}));\n//# sourceMappingURL=PubSub.js.map","import zenObservable from 'zen-observable';\n\nvar Observable = zenObservable;\n\nexport default Observable;\nexport { Observable };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __assign } from \"tslib\";\nimport { ConsoleLogger as Logger, } from '@aws-amplify/core';\nvar logger = new Logger('AbstractPubSubProvider');\nvar AbstractPubSubProvider = /** @class */ (function () {\n function AbstractPubSubProvider(options) {\n this._config = options;\n }\n AbstractPubSubProvider.prototype.configure = function (config) {\n this._config = __assign(__assign({}, config), this._config);\n logger.debug(\"configure \" + this.getProviderName(), this._config);\n return this.options;\n };\n AbstractPubSubProvider.prototype.getCategory = function () {\n return 'PubSub';\n };\n Object.defineProperty(AbstractPubSubProvider.prototype, \"options\", {\n get: function () {\n return __assign({}, this._config);\n },\n enumerable: true,\n configurable: true\n });\n return AbstractPubSubProvider;\n}());\nexport { AbstractPubSubProvider };\n//# sourceMappingURL=PubSubProvider.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var MAX_DELAY_MS = 5000;\nexport var NON_RETRYABLE_CODES = [400, 401, 403];\nexport var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\nexport var MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\";\n})(MESSAGE_TYPES || (MESSAGE_TYPES = {}));\nexport var SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));\nexport var SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS || (SOCKET_STATUS = {}));\nexport var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var AWS_APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8',\n};\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport var CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport var START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n/**\n * Default delay time in milleseconds between when reconnect is triggered vs when it is attempted\n */\nexport var RECONNECT_DELAY = 5 * 1000;\n/**\n * Default interval time in milleseconds between when reconnect is re-attempted\n */\nexport var RECONNECT_INTERVAL = 60 * 1000;\n//# sourceMappingURL=constants.js.map","import { RECONNECT_DELAY, RECONNECT_INTERVAL } from '../Providers/constants';\nexport var ReconnectEvent;\n(function (ReconnectEvent) {\n ReconnectEvent[\"START_RECONNECT\"] = \"START_RECONNECT\";\n ReconnectEvent[\"HALT_RECONNECT\"] = \"HALT_RECONNECT\";\n})(ReconnectEvent || (ReconnectEvent = {}));\n/**\n * Captures the reconnect event logic used to determine when to reconnect to PubSub providers.\n * Reconnnect attempts are delayed by 5 seconds to let the interface settle.\n * Attempting to reconnect only once creates unrecoverable states when the network state isn't\n * supported by the browser, so this keeps retrying every minute until halted.\n */\nvar ReconnectionMonitor = /** @class */ (function () {\n function ReconnectionMonitor() {\n this.reconnectObservers = [];\n }\n /**\n * Add reconnect observer to the list of observers to alert on reconnect\n */\n ReconnectionMonitor.prototype.addObserver = function (reconnectObserver) {\n this.reconnectObservers.push(reconnectObserver);\n };\n /**\n * Given a reconnect event, start the appropriate behavior\n */\n ReconnectionMonitor.prototype.record = function (event) {\n var _this = this;\n if (event === ReconnectEvent.START_RECONNECT) {\n // If the reconnection hasn't been started\n if (this.reconnectSetTimeoutId === undefined &&\n this.reconnectIntervalId === undefined) {\n this.reconnectSetTimeoutId = setTimeout(function () {\n // Reconnect now\n _this._triggerReconnect();\n // Retry reconnect every periodically until it works\n _this.reconnectIntervalId = setInterval(function () {\n _this._triggerReconnect();\n }, RECONNECT_INTERVAL);\n }, RECONNECT_DELAY);\n }\n }\n if (event === ReconnectEvent.HALT_RECONNECT) {\n if (this.reconnectIntervalId) {\n clearInterval(this.reconnectIntervalId);\n this.reconnectIntervalId = undefined;\n }\n if (this.reconnectSetTimeoutId) {\n clearTimeout(this.reconnectSetTimeoutId);\n this.reconnectSetTimeoutId = undefined;\n }\n }\n };\n /**\n * Complete all reconnect observers\n */\n ReconnectionMonitor.prototype.close = function () {\n this.reconnectObservers.forEach(function (reconnectObserver) {\n var _a;\n (_a = reconnectObserver.complete) === null || _a === void 0 ? void 0 : _a.call(reconnectObserver);\n });\n };\n ReconnectionMonitor.prototype._triggerReconnect = function () {\n this.reconnectObservers.forEach(function (reconnectObserver) {\n var _a;\n (_a = reconnectObserver.next) === null || _a === void 0 ? void 0 : _a.call(reconnectObserver);\n });\n };\n return ReconnectionMonitor;\n}());\nexport { ReconnectionMonitor };\n//# sourceMappingURL=ReconnectionMonitor.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nvar ReachabilityNavigator = /** @class */ (function () {\n function ReachabilityNavigator() {\n }\n ReachabilityNavigator.prototype.networkMonitor = function (netInfo) {\n if (browserOrNode().isNode) {\n return Observable.from([{ online: true }]);\n }\n var globalObj = isWebWorker() ? self : window;\n return new Observable(function (observer) {\n observer.next({ online: globalObj.navigator.onLine });\n var notifyOnline = function () { return observer.next({ online: true }); };\n var notifyOffline = function () { return observer.next({ online: false }); };\n globalObj.addEventListener('online', notifyOnline);\n globalObj.addEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers.push(observer);\n return function () {\n globalObj.removeEventListener('online', notifyOnline);\n globalObj.removeEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n };\n });\n };\n // expose observers to simulate offline mode for integration testing\n ReachabilityNavigator._observerOverride = function (status) {\n var e_1, _a;\n var _loop_1 = function (observer) {\n if (observer.closed) {\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n return \"continue\";\n }\n observer.next(status);\n };\n try {\n for (var _b = __values(ReachabilityNavigator._observers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n _loop_1(observer);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ReachabilityNavigator._observers = [];\n return ReachabilityNavigator;\n}());\nexport default ReachabilityNavigator;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = function () { return new Reachability().networkMonitor(); };\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign } from \"tslib\";\nimport Observable from 'zen-observable-ts';\nimport { ConnectionState } from '../types/PubSub';\nimport { ReachabilityMonitor } from './ReachabilityMonitor';\nexport var CONNECTION_CHANGE = {\n KEEP_ALIVE_MISSED: { keepAliveState: 'unhealthy' },\n KEEP_ALIVE: { keepAliveState: 'healthy' },\n CONNECTION_ESTABLISHED: { connectionState: 'connected' },\n CONNECTION_FAILED: {\n intendedConnectionState: 'disconnected',\n connectionState: 'disconnected',\n },\n CLOSING_CONNECTION: { intendedConnectionState: 'disconnected' },\n OPENING_CONNECTION: {\n intendedConnectionState: 'connected',\n connectionState: 'connecting',\n },\n CLOSED: { connectionState: 'disconnected' },\n ONLINE: { networkState: 'connected' },\n OFFLINE: { networkState: 'disconnected' },\n};\nvar ConnectionStateMonitor = /** @class */ (function () {\n function ConnectionStateMonitor() {\n var _this = this;\n this._networkMonitoringSubscription = undefined;\n this._linkedConnectionState = {\n networkState: 'connected',\n connectionState: 'disconnected',\n intendedConnectionState: 'disconnected',\n keepAliveState: 'healthy',\n };\n // Attempt to update the state with the current actual network state\n this._initialNetworkStateSubscription = ReachabilityMonitor().subscribe(function (_a) {\n var online = _a.online;\n var _b;\n _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);\n (_b = _this._initialNetworkStateSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();\n });\n this._linkedConnectionStateObservable =\n new Observable(function (connectionStateObserver) {\n connectionStateObserver.next(_this._linkedConnectionState);\n _this._linkedConnectionStateObserver = connectionStateObserver;\n });\n }\n /**\n * Turn network state monitoring on if it isn't on already\n */\n ConnectionStateMonitor.prototype.enableNetworkMonitoring = function () {\n var _this = this;\n var _a;\n // If no initial network state was discovered, stop trying\n (_a = this._initialNetworkStateSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n // Maintain the network state based on the reachability monitor\n if (this._networkMonitoringSubscription === undefined) {\n this._networkMonitoringSubscription = ReachabilityMonitor().subscribe(function (_a) {\n var online = _a.online;\n _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);\n });\n }\n };\n /**\n * Turn network state monitoring off if it isn't off already\n */\n ConnectionStateMonitor.prototype.disableNetworkMonitoring = function () {\n var _a;\n (_a = this._networkMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._networkMonitoringSubscription = undefined;\n };\n Object.defineProperty(ConnectionStateMonitor.prototype, \"connectionStateObservable\", {\n /**\n * Get the observable that allows us to monitor the connection state\n *\n * @returns {Observable} - The observable that emits ConnectionState updates\n */\n get: function () {\n var _this = this;\n var previous;\n // The linked state aggregates state changes to any of the network, connection,\n // intendedConnection and keepAliveHealth. Some states will change these independent\n // states without changing the overall connection state.\n // After translating from linked states to ConnectionState, then remove any duplicates\n return this._linkedConnectionStateObservable\n .map(function (value) {\n return _this.connectionStatesTranslator(value);\n })\n .filter(function (current) {\n var toInclude = current !== previous;\n previous = current;\n return toInclude;\n });\n },\n enumerable: true,\n configurable: true\n });\n /*\n * Updates local connection state and emits the full state to the observer.\n */\n ConnectionStateMonitor.prototype.record = function (statusUpdates) {\n // Maintain the network monitor\n if (statusUpdates.intendedConnectionState === 'connected') {\n this.enableNetworkMonitoring();\n }\n else if (statusUpdates.intendedConnectionState === 'disconnected') {\n this.disableNetworkMonitoring();\n }\n // Maintain the socket state\n var newSocketStatus = __assign(__assign({}, this._linkedConnectionState), statusUpdates);\n this._linkedConnectionState = __assign({}, newSocketStatus);\n this._linkedConnectionStateObserver.next(this._linkedConnectionState);\n };\n /*\n * Translate the ConnectionState structure into a specific ConnectionState string literal union\n */\n ConnectionStateMonitor.prototype.connectionStatesTranslator = function (_a) {\n var connectionState = _a.connectionState, networkState = _a.networkState, intendedConnectionState = _a.intendedConnectionState, keepAliveState = _a.keepAliveState;\n if (connectionState === 'connected' && networkState === 'disconnected')\n return ConnectionState.ConnectedPendingNetwork;\n if (connectionState === 'connected' &&\n intendedConnectionState === 'disconnected')\n return ConnectionState.ConnectedPendingDisconnect;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected' &&\n networkState === 'disconnected')\n return ConnectionState.ConnectionDisruptedPendingNetwork;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected')\n return ConnectionState.ConnectionDisrupted;\n if (connectionState === 'connected' && keepAliveState === 'unhealthy')\n return ConnectionState.ConnectedPendingKeepAlive;\n // All remaining states directly correspond to the connection state\n if (connectionState === 'connecting')\n return ConnectionState.Connecting;\n if (connectionState === 'disconnected')\n return ConnectionState.Disconnected;\n return ConnectionState.Connected;\n };\n return ConnectionStateMonitor;\n}());\nexport { ConnectionStateMonitor };\n//# sourceMappingURL=ConnectionStateMonitor.js.map","import { GRAPHQL_AUTH_MODE } from '@aws-amplify/auth';\nexport { GRAPHQL_AUTH_MODE };\nexport var GraphQLAuthError;\n(function (GraphQLAuthError) {\n GraphQLAuthError[\"NO_API_KEY\"] = \"No api-key configured\";\n GraphQLAuthError[\"NO_CURRENT_USER\"] = \"No current user\";\n GraphQLAuthError[\"NO_CREDENTIALS\"] = \"No credentials\";\n GraphQLAuthError[\"NO_FEDERATED_JWT\"] = \"No federated jwt\";\n GraphQLAuthError[\"NO_AUTH_TOKEN\"] = \"No auth token specified\";\n})(GraphQLAuthError || (GraphQLAuthError = {}));\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __read } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Observable from 'zen-observable-ts';\nimport { GraphQLError } from 'graphql';\nimport * as url from 'url';\nimport { v4 as uuid } from 'uuid';\nimport { Buffer } from 'buffer';\nimport { Logger, Credentials, Signer, Hub, USER_AGENT_HEADER, jitteredExponentialRetry, NonRetryableError, isNonRetryableError, getAmplifyUserAgent, } from '@aws-amplify/core';\nimport { Cache } from '@aws-amplify/cache';\nimport { Auth } from '@aws-amplify/auth';\nimport { AbstractPubSubProvider } from '../PubSubProvider';\nimport { CONTROL_MSG, ConnectionState, } from '../../types/PubSub';\nimport { AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT, MAX_DELAY_MS, MESSAGE_TYPES, NON_RETRYABLE_CODES, SOCKET_STATUS, START_ACK_TIMEOUT, SUBSCRIPTION_STATUS, CONNECTION_STATE_CHANGE, } from '../constants';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../../utils/ConnectionStateMonitor';\nimport { ReconnectEvent, ReconnectionMonitor, } from '../../utils/ReconnectionMonitor';\nvar logger = new Logger('AWSAppSyncRealTimeProvider');\nvar dispatchApiEvent = function (event, data, message) {\n Hub.dispatch('api', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com(?:\\.cn)?\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncRealTimeProvider, _super);\n function AWSAppSyncRealTimeProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, options) || this;\n _this.socketStatus = SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n _this.reconnectionMonitor = new ReconnectionMonitor();\n // Monitor the connection state and pass changes along to Hub\n _this.connectionStateMonitorSubscription =\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionState) {\n dispatchApiEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: connectionState,\n }, \"Connection state is \" + connectionState);\n _this.connectionState = connectionState;\n // Trigger START_RECONNECT when the connection is disrupted\n if (connectionState === ConnectionState.ConnectionDisrupted) {\n _this.reconnectionMonitor.record(ReconnectEvent.START_RECONNECT);\n }\n // Trigger HALT_RECONNECT to halt reconnection attempts when the state is anything other than\n // ConnectionDisrupted or Connecting\n if ([\n ConnectionState.Connected,\n ConnectionState.ConnectedPendingDisconnect,\n ConnectionState.ConnectedPendingKeepAlive,\n ConnectionState.ConnectedPendingNetwork,\n ConnectionState.ConnectionDisruptedPendingNetwork,\n ConnectionState.Disconnected,\n ].includes(connectionState)) {\n _this.reconnectionMonitor.record(ReconnectEvent.HALT_RECONNECT);\n }\n });\n return _this;\n }\n /**\n * Mark the socket closed and release all active listeners\n */\n AWSAppSyncRealTimeProvider.prototype.close = function () {\n // Mark the socket closed both in status and the connection monitor\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n // Turn off the subscription monitor Hub publishing\n this.connectionStateMonitorSubscription.unsubscribe();\n // Complete all reconnect observers\n this.reconnectionMonitor.close();\n };\n AWSAppSyncRealTimeProvider.prototype.getNewWebSocket = function (url, protocol) {\n return new WebSocket(url, protocol);\n };\n AWSAppSyncRealTimeProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncRealTimeProvider';\n };\n AWSAppSyncRealTimeProvider.prototype.newClient = function () {\n throw new Error('Not used here');\n };\n AWSAppSyncRealTimeProvider.prototype.publish = function (_topics, _msg, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Operation not supported');\n });\n });\n };\n // Check if url matches standard domain pattern\n AWSAppSyncRealTimeProvider.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AWSAppSyncRealTimeProvider.prototype.subscribe = function (_topics, options, customUserAgentDetails) {\n var _this = this;\n var appSyncGraphqlEndpoint = options === null || options === void 0 ? void 0 : options.appSyncGraphqlEndpoint;\n return new Observable(function (observer) {\n if (!options || !appSyncGraphqlEndpoint) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionStartActive_1 = false;\n var subscriptionId_1 = uuid();\n var startSubscription_1 = function () {\n if (!subscriptionStartActive_1) {\n subscriptionStartActive_1 = true;\n var startSubscriptionPromise = _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n customUserAgentDetails: customUserAgentDetails,\n }).catch(function (err) {\n logger.debug(CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR + \": \" + err);\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n });\n startSubscriptionPromise.finally(function () {\n subscriptionStartActive_1 = false;\n });\n }\n };\n var reconnectSubscription_1;\n // Add an observable to the reconnection list to manage reconnection for this subscription\n reconnectSubscription_1 = new Observable(function (observer) {\n _this.reconnectionMonitor.addObserver(observer);\n }).subscribe(function () {\n startSubscription_1();\n });\n startSubscription_1();\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Cleanup reconnection subscription\n reconnectSubscription_1 === null || reconnectSubscription_1 === void 0 ? void 0 : reconnectSubscription_1.unsubscribe();\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, 4, 5]);\n // Waiting that subscription has been connected before trying to unsubscribe\n return [4 /*yield*/, this._waitForSubscriptionToBeConnected(subscriptionId_1)];\n case 2:\n // Waiting that subscription has been connected before trying to unsubscribe\n _a.sent();\n subscriptionState = (this.subscriptionObserverMap.get(subscriptionId_1) || {}).subscriptionState;\n if (!subscriptionState) {\n // subscription already unsubscribed\n return [2 /*return*/];\n }\n if (subscriptionState === SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error('Subscription never connected');\n }\n return [3 /*break*/, 5];\n case 3:\n err_1 = _a.sent();\n logger.debug(\"Error while unsubscribing \" + err_1);\n return [3 /*break*/, 5];\n case 4:\n this._removeSubscriptionObserver(subscriptionId_1);\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n }\n });\n };\n Object.defineProperty(AWSAppSyncRealTimeProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options['aws_appsync_dangerously_connect_to_http_endpoint_for_testing'];\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncRealTimeProvider.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId, customUserAgentDetails = _a.customUserAgentDetails;\n var _b;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _c, graphql_headers, _d, additionalHeaders, subscriptionState, data, dataString, headerObj, _e, _f, subscriptionMessage, stringToAWSRealTime, err_2, _g, subscriptionFailedCallback, subscriptionReadyCallback;\n var _h;\n var _this = this;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _c = options.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, _d = options.additionalHeaders, additionalHeaders = _d === void 0 ? {} : _d;\n subscriptionState = SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionState: subscriptionState,\n startAckTimeoutId: undefined,\n });\n dataString = JSON.stringify(data);\n _e = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: '',\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 1:\n _f = [__assign.apply(void 0, _e.concat([(_j.sent())]))];\n return [4 /*yield*/, graphql_headers()];\n case 2:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), additionalHeaders]), (_h = {}, _h[USER_AGENT_HEADER] = getAmplifyUserAgent(customUserAgentDetails), _h)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj),\n },\n },\n type: MESSAGE_TYPES.GQL_START,\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _j.label = 3;\n case 3:\n _j.trys.push([3, 5, , 6]);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 4:\n _j.sent();\n return [3 /*break*/, 6];\n case 5:\n err_2 = _j.sent();\n this._logStartSubscriptionError(subscriptionId, observer, err_2);\n return [2 /*return*/];\n case 6:\n _g = (_b = this.subscriptionObserverMap.get(subscriptionId)) !== null && _b !== void 0 ? _b : {}, subscriptionFailedCallback = _g.subscriptionFailedCallback, subscriptionReadyCallback = _g.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // Log logic for start subscription failures\n AWSAppSyncRealTimeProvider.prototype._logStartSubscriptionError = function (subscriptionId, observer, err) {\n var _a;\n logger.debug({ err: err });\n var message = String((_a = err.message) !== null && _a !== void 0 ? _a : '');\n // Resolving to give the state observer time to propogate the update\n Promise.resolve(this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED));\n // Capture the error only when the network didn't cause disruption\n if (this.connectionState !== ConnectionState.ConnectionDisruptedPendingNetwork) {\n // When the error is non-retriable, error out the observable\n if (isNonRetryableError(err)) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + message)),\n ],\n });\n }\n else {\n logger.debug(CONTROL_MSG.CONNECTION_FAILED + \": \" + message);\n }\n var subscriptionFailedCallback = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n };\n // Waiting that subscription has been connected before trying to unsubscribe\n AWSAppSyncRealTimeProvider.prototype._waitForSubscriptionToBeConnected = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionObserver, subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n subscriptionState = subscriptionObserver.subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var observer = subscriptionObserver.observer, subscriptionState = subscriptionObserver.subscriptionState, variables = subscriptionObserver.variables, query = subscriptionObserver.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej,\n });\n })];\n }\n }\n return [2 /*return*/];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: MESSAGE_TYPES.GQL_STOP,\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger.debug({ err: err });\n }\n };\n AWSAppSyncRealTimeProvider.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AWSAppSyncRealTimeProvider.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // Active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return;\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // Still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger.debug('closing WebSocket...');\n if (this.keepAliveTimeoutId) {\n clearTimeout(this.keepAliveTimeoutId);\n }\n if (this.keepAliveAlertTimeoutId) {\n clearTimeout(this.keepAliveAlertTimeoutId);\n }\n var tempSocket = this.awsRealTimeSocket;\n // Cleaning callbacks to avoid race condition, socket still exists\n tempSocket.onclose = null;\n tempSocket.onerror = null;\n tempSocket.close(1000);\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n };\n AWSAppSyncRealTimeProvider.prototype._handleIncomingSubscriptionMessage = function (message) {\n var _this = this;\n if (typeof message.data !== 'string') {\n return;\n }\n logger.debug(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(String(message.data)), _b = _a.id, id = _b === void 0 ? '' : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? '' : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, startAckTimeoutId = _c.startAckTimeoutId, subscriptionReadyCallback = _c.subscriptionReadyCallback, subscriptionFailedCallback = _c.subscriptionFailedCallback;\n logger.debug({ id: id, observer: observer, query: query, variables: variables });\n if (type === MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger.debug(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === MESSAGE_TYPES.GQL_START_ACK) {\n logger.debug(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === 'function') {\n subscriptionReadyCallback();\n }\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n dispatchApiEvent(CONTROL_MSG.SUBSCRIPTION_ACK, { query: query, variables: variables }, 'Connection established for subscription');\n var subscriptionState = SUBSCRIPTION_STATUS.CONNECTED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: undefined,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n });\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n if (this.keepAliveTimeoutId)\n clearTimeout(this.keepAliveTimeoutId);\n if (this.keepAliveAlertTimeoutId)\n clearTimeout(this.keepAliveAlertTimeoutId);\n this.keepAliveTimeoutId = setTimeout(function () { return _this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT); }, this.keepAliveTimeout);\n this.keepAliveAlertTimeoutId = setTimeout(function () {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE_MISSED);\n }, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = SUBSCRIPTION_STATUS.FAILED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState,\n });\n logger.debug(CONTROL_MSG.CONNECTION_FAILED + \": \" + JSON.stringify(payload));\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + JSON.stringify(payload))),\n ],\n });\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n };\n AWSAppSyncRealTimeProvider.prototype._errorDisconnect = function (msg) {\n logger.debug(\"Disconnect error: \" + msg);\n if (this.awsRealTimeSocket) {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = SOCKET_STATUS.CLOSED;\n };\n AWSAppSyncRealTimeProvider.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n var observer = subscriptionObserver.observer, query = subscriptionObserver.query, variables = subscriptionObserver.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: SUBSCRIPTION_STATUS.FAILED,\n });\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n logger.debug('timeoutStartSubscription', JSON.stringify({ query: query, variables: variables }));\n }\n };\n AWSAppSyncRealTimeProvider.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n if (this.socketStatus === SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, authHeader, headerString, headerQs, payloadQs, discoverableEndpoint, protocol, awsRealTimeUrl, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n this.socketStatus = SOCKET_STATUS.CONNECTING;\n payloadString = '{}';\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: '/connect',\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n authHeader = _a.sent();\n headerString = authHeader ? JSON.stringify(authHeader) : '';\n headerQs = Buffer.from(headerString).toString('base64');\n payloadQs = Buffer.from(payloadString).toString('base64');\n discoverableEndpoint = appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '';\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint =\n discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint\n .replace('appsync-api', 'appsync-realtime-api')\n .replace('gogi-beta', 'grt-beta');\n }\n protocol = this.isSSLEnabled ? 'wss://' : 'ws://';\n discoverableEndpoint = discoverableEndpoint\n .replace('https://', protocol)\n .replace('http://', protocol);\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake(awsRealTimeUrl)];\n case 3:\n _a.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger.debug('Notifying connection successful');\n res();\n });\n this.socketStatus = SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_3 = _a.sent();\n logger.debug('Connection exited with', err_3);\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_3);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeRetryableHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl], MAX_DELAY_MS)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var err_4, _a, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = _this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');\n newSocket.onerror = function () {\n logger.debug(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n rej(new Error('Connection handshake error'));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n if (_this.awsRealTimeSocket) {\n var ackOk_1 = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger.debug(\"WebSocket error \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n if (typeof message.data !== 'string') {\n return;\n }\n logger.debug(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _a = data.payload, _b = (_a === void 0 ? {} : _a).connectionTimeoutMs, connectionTimeoutMs = _b === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _b;\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk_1 = true;\n if (_this.awsRealTimeSocket) {\n _this.keepAliveTimeout = connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage =\n _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger.debug(err);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n }\n res('Cool, connected to AWS AppSyncRealTime');\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _c = data.payload, _d = (_c === void 0 ? {} : _c).errors, _e = __read(_d === void 0 ? [] : _d, 1), _f = _e[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? '' : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n var checkAckOk_1 = function (ackOk) {\n if (!ackOk) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n rej(new Error(\"Connection timeout: ack from AWSAppSyncRealTime was not received after \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n };\n setTimeout(function () { return checkAckOk_1(ackOk_1); }, CONNECTION_INIT_TIMEOUT);\n }\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_4 = _b.sent();\n _a = err_4, errorType = _a.errorType, errorCode = _a.errorCode;\n if (NON_RETRYABLE_CODES.includes(errorCode)) {\n throw new NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_4;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeOPENIDHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeCUPHeader.bind(this),\n AWS_LAMBDA: this._customAuthHeader,\n };\n if (!(!authenticationType || !headerHandler[authenticationType])) return [3 /*break*/, 1];\n logger.debug(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, undefined];\n case 1:\n handler = headerHandler[authenticationType];\n host = url.parse(appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;\n logger.debug(\"Authenticating with \" + authenticationType);\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeCUPHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var session;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Auth.currentSession()];\n case 1:\n session = _b.sent();\n return [2 /*return*/, {\n Authorization: session.getAccessToken().getJwtToken(),\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeOPENIDHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var token, federatedInfo, currentUser;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 1:\n federatedInfo = _b.sent();\n if (!federatedInfo) return [3 /*break*/, 2];\n token = federatedInfo.token;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 3:\n currentUser = _b.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _b.label = 4;\n case 4:\n if (!token) {\n throw new Error('No federated jwt');\n }\n return [2 /*return*/, {\n Authorization: token,\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr;\n return __generator(this, function (_b) {\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n return [2 /*return*/, {\n host: host,\n 'x-amz-date': dtStr,\n 'x-api-key': apiKey,\n }];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, credentialsOK, creds, request, signed_params;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: 'appsync',\n };\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n return [4 /*yield*/, Credentials.get().then(function (credentials) {\n var _a = credentials, secretAccessKey = _a.secretAccessKey, accessKeyId = _a.accessKeyId, sessionToken = _a.sessionToken;\n return {\n secret_key: secretAccessKey,\n access_key: accessKeyId,\n session_token: sessionToken,\n };\n })];\n case 2:\n creds = _b.sent();\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n data: payload,\n method: 'POST',\n headers: __assign({}, AWS_APPSYNC_REALTIME_HEADERS),\n };\n signed_params = Signer.sign(request, creds, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._customAuthHeader = function (_a) {\n var host = _a.host, additionalHeaders = _a.additionalHeaders;\n if (!additionalHeaders || !additionalHeaders['Authorization']) {\n throw new Error('No auth token specified');\n }\n return {\n Authorization: additionalHeaders.Authorization,\n host: host,\n };\n };\n /**\n * @private\n */\n AWSAppSyncRealTimeProvider.prototype._ensureCredentials = function () {\n return Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = Credentials.shear(credentials);\n logger.debug('set credentials for AWSAppSyncRealTimeProvider', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return AWSAppSyncRealTimeProvider;\n}(AbstractPubSubProvider));\nexport { AWSAppSyncRealTimeProvider };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, browserOrNode, Category, ConsoleLogger as Logger, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, PubSubAction, } from '@aws-amplify/core';\nimport { AWSAppSyncRealTimeProvider } from '../Providers';\nimport Observable from 'zen-observable-ts';\nvar isNode = browserOrNode().isNode;\nvar logger = new Logger('PubSub');\nvar InternalPubSubClass = /** @class */ (function () {\n /**\n * Initialize PubSub with AWS configurations\n *\n * @param {PubSubOptions} options - Configuration object for PubSub\n */\n function InternalPubSubClass(options) {\n this._options = options !== null && options !== void 0 ? options : {};\n logger.debug('PubSub Options', this._options);\n this._pluggables = [];\n this.subscribe = this.subscribe.bind(this);\n }\n Object.defineProperty(InternalPubSubClass.prototype, \"awsAppSyncRealTimeProvider\", {\n /**\n * Lazy instantiate AWSAppSyncRealTimeProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncRealTimeProvider) {\n this._awsAppSyncRealTimeProvider = new AWSAppSyncRealTimeProvider(this._options);\n }\n return this._awsAppSyncRealTimeProvider;\n },\n enumerable: true,\n configurable: true\n });\n InternalPubSubClass.prototype.getModuleName = function () {\n return 'InternalPubSub';\n };\n /**\n * Configure PubSub part with configurations\n *\n * @param {PubSubOptions} config - Configuration for PubSub\n * @return {Object} - The current configuration\n */\n InternalPubSubClass.prototype.configure = function (options) {\n var _this = this;\n var opt = options\n ? options.PubSub || options\n : {};\n logger.debug('configure PubSub', { opt: opt });\n this._options = Object.assign({}, this._options, opt);\n this._pluggables.map(function (pluggable) { return pluggable.configure(_this._options); });\n return this._options;\n };\n /**\n * add plugin into Analytics category\n * @param {Object} pluggable - an instance of the plugin\n */\n InternalPubSubClass.prototype.addPluggable = function (pluggable) {\n return __awaiter(this, void 0, void 0, function () {\n var config;\n return __generator(this, function (_a) {\n if (pluggable && pluggable.getCategory() === 'PubSub') {\n this._pluggables.push(pluggable);\n config = pluggable.configure(this._options);\n return [2 /*return*/, config];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * remove plugin from PubSub category\n * @param providerName - the name of the plugin\n */\n InternalPubSubClass.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n };\n InternalPubSubClass.prototype.getProviderByName = function (providerName) {\n if (providerName === INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER) {\n return this.awsAppSyncRealTimeProvider;\n }\n return this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n };\n InternalPubSubClass.prototype.getProviders = function (options) {\n if (options === void 0) { options = {}; }\n var providerName = options.provider;\n if (!providerName) {\n return this._pluggables;\n }\n var provider = this.getProviderByName(providerName);\n if (!provider) {\n throw new Error(\"Could not find provider named \" + String(providerName));\n }\n return [provider];\n };\n InternalPubSubClass.prototype.publish = function (topics, msg, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.getProviders(options).map(function (provider) {\n return provider.publish(topics, msg, options);\n }))];\n });\n });\n };\n InternalPubSubClass.prototype.subscribe = function (topics, options, customUserAgentDetails) {\n if (isNode && this._options && this._options.ssr) {\n throw new Error('Subscriptions are not supported for Server-Side Rendering (SSR)');\n }\n logger.debug('subscribe options', options);\n var providers = this.getProviders(options);\n var pubSubUserAgentDetails = __assign({ category: Category.PubSub, action: PubSubAction.Subscribe }, customUserAgentDetails);\n return new Observable(function (observer) {\n var observables = providers.map(function (provider) { return ({\n provider: provider,\n observable: provider.subscribe(topics, options, pubSubUserAgentDetails),\n }); });\n var subscriptions = observables.map(function (_a) {\n var provider = _a.provider, observable = _a.observable;\n return observable.subscribe({\n start: console.error,\n next: function (value) { return observer.next({ provider: provider, value: value }); },\n error: function (error) { return observer.error({ provider: provider, error: error }); },\n });\n });\n return function () {\n return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n };\n });\n };\n return InternalPubSubClass;\n}());\nexport { InternalPubSubClass };\nexport var InternalPubSub = new InternalPubSubClass();\nAmplify.register(InternalPubSub);\n//# sourceMappingURL=InternalPubSub.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { ConsoleLogger as Logger, Credentials, DateUtils, Signer, } from '@aws-amplify/core';\nimport axios from 'axios';\nimport { parse, format } from 'url';\nvar logger = new Logger('RestClient');\n/**\n* HTTP Client for REST requests. Send and receive JSON data.\n* Sign request with AWS credentials if available\n* Usage:\n
\nconst restClient = new RestClient();\nrestClient.get('...')\n    .then(function(data) {\n        console.log(data);\n    })\n    .catch(err => console.log(err));\n
\n*/\nvar RestClient = /** @class */ (function () {\n /**\n * @param {RestClientOptions} [options] - Instance options\n */\n function RestClient(options) {\n this._region = 'us-east-1'; // this will be updated by endpoint function\n this._service = 'execute-api'; // this can be updated by endpoint function\n this._custom_header = undefined; // this can be updated by endpoint function\n /**\n * This weak map provides functionality to let clients cancel\n * in-flight axios requests. https://github.com/axios/axios#cancellation\n *\n * 1. For every axios request, a unique cancel token is generated and added in the request.\n * 2. Promise for fulfilling the request is then mapped to that unique cancel token.\n * 3. The promise is returned to the client.\n * 4. Clients can either wait for the promise to fulfill or call `API.cancel(promise)` to cancel the request.\n * 5. If `API.cancel(promise)` is called, then the corresponding cancel token is retrieved from the map below.\n * 6. Promise returned to the client will be in rejected state with the error provided during cancel.\n * 7. Clients can check if the error is because of cancelling by calling `API.isCancel(error)`.\n *\n * For more details, see https://github.com/aws-amplify/amplify-js/pull/3769#issuecomment-552660025\n */\n this._cancelTokenMap = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n if (this._cancelTokenMap == null) {\n this._cancelTokenMap = new WeakMap();\n }\n }\n /**\n * Update AWS credentials\n * @param {AWSCredentials} credentials - AWS credentials\n *\n updateCredentials(credentials: AWSCredentials) {\n this.options.credentials = credentials;\n }\n*/\n /**\n * Basic HTTP request. Customizable\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {string} method - Request HTTP method\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.ajax = function (urlOrApiInfo, method, init) {\n return __awaiter(this, void 0, void 0, function () {\n var parsed_url, url, region, service, custom_header, params, libraryHeaders, initParams, isAllResponse, custom_header_obj, _a, _b, search, parsedUrl, credentials, error_1, signedParams, response, error_2, headers, dateHeader, responseDate, requestDate;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug(method, urlOrApiInfo);\n region = 'us-east-1';\n service = 'execute-api';\n custom_header = undefined;\n if (typeof urlOrApiInfo === 'string') {\n parsed_url = this._parseUrl(urlOrApiInfo);\n url = urlOrApiInfo;\n }\n else {\n (url = urlOrApiInfo.endpoint, custom_header = urlOrApiInfo.custom_header, region = urlOrApiInfo.region, service = urlOrApiInfo.service);\n parsed_url = this._parseUrl(urlOrApiInfo.endpoint);\n }\n params = {\n method: method,\n url: url,\n host: parsed_url.host,\n path: parsed_url.path,\n headers: {},\n data: null,\n responseType: 'json',\n timeout: 0,\n cancelToken: null,\n };\n libraryHeaders = {};\n initParams = Object.assign({}, init);\n isAllResponse = initParams.response;\n if (initParams.body) {\n if (typeof FormData === 'function' &&\n initParams.body instanceof FormData) {\n libraryHeaders['Content-Type'] = 'multipart/form-data';\n params.data = initParams.body;\n }\n else {\n libraryHeaders['Content-Type'] = 'application/json; charset=UTF-8';\n params.data = JSON.stringify(initParams.body);\n }\n }\n if (initParams.responseType) {\n params.responseType = initParams.responseType;\n }\n if (initParams.withCredentials) {\n params['withCredentials'] = initParams.withCredentials;\n }\n if (initParams.timeout) {\n params.timeout = initParams.timeout;\n }\n if (initParams.cancellableToken) {\n params.cancelToken = initParams.cancellableToken.token;\n }\n params['signerServiceInfo'] = initParams.signerServiceInfo;\n if (!(typeof custom_header === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, custom_header()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = undefined;\n _c.label = 3;\n case 3:\n custom_header_obj = _a;\n params.headers = __assign(__assign(__assign({}, libraryHeaders), custom_header_obj), initParams.headers);\n _b = parse(url, true, true), search = _b.search, parsedUrl = __rest(_b, [\"search\"]);\n params.url = format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), (initParams.queryStringParameters || {})) }));\n // Do not sign the request if client has added 'Authorization' header,\n // which means custom authorizer.\n if (typeof params.headers['Authorization'] !== 'undefined') {\n params.headers = Object.keys(params.headers).reduce(function (acc, k) {\n if (params.headers[k]) {\n acc[k] = params.headers[k];\n }\n return acc;\n // tslint:disable-next-line:align\n }, {});\n return [2 /*return*/, this._request(params, isAllResponse)];\n }\n _c.label = 4;\n case 4:\n _c.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.Credentials.get()];\n case 5:\n credentials = _c.sent();\n return [3 /*break*/, 7];\n case 6:\n error_1 = _c.sent();\n logger.debug('No credentials available, the request will be unsigned');\n return [2 /*return*/, this._request(params, isAllResponse)];\n case 7:\n _c.trys.push([7, 9, , 10]);\n signedParams = this._sign(__assign({}, params), credentials, {\n region: region,\n service: service,\n });\n return [4 /*yield*/, axios(signedParams)];\n case 8:\n response = _c.sent();\n return [2 /*return*/, isAllResponse ? response : response.data];\n case 9:\n error_2 = _c.sent();\n logger.debug(error_2);\n if (DateUtils.isClockSkewError(error_2)) {\n headers = error_2.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n responseDate = new Date(dateHeader);\n requestDate = DateUtils.getDateFromHeaderString(signedParams.headers['x-amz-date']);\n // Compare local clock to the server clock\n if (DateUtils.isClockSkewed(responseDate)) {\n DateUtils.setClockOffset(responseDate.getTime() - requestDate.getTime());\n return [2 /*return*/, this.ajax(urlOrApiInfo, method, init)];\n }\n }\n throw error_2;\n case 10: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * GET HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {JSON} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.get = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'GET', init);\n };\n /**\n * PUT HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.put = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PUT', init);\n };\n /**\n * PATCH HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.patch = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PATCH', init);\n };\n /**\n * POST HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.post = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'POST', init);\n };\n /**\n * DELETE HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.del = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'DELETE', init);\n };\n /**\n * HEAD HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.head = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'HEAD', init);\n };\n /**\n * Cancel an inflight API request\n * @param {Promise} request - The request promise to cancel\n * @param {string} [message] - A message to include in the cancelation exception\n */\n RestClient.prototype.cancel = function (request, message) {\n var source = this._cancelTokenMap.get(request);\n if (source) {\n source.cancel(message);\n return true;\n }\n return false;\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestClient.prototype.hasCancelToken = function (request) {\n return this._cancelTokenMap.has(request);\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestClient.prototype.isCancel = function (error) {\n return axios.isCancel(error);\n };\n /**\n * Retrieves a new and unique cancel token which can be\n * provided in an axios request to be cancelled later.\n */\n RestClient.prototype.getCancellableToken = function () {\n return axios.CancelToken.source();\n };\n /**\n * Updates the weakmap with a response promise and its\n * cancel token such that the cancel token can be easily\n * retrieved (and used for cancelling the request)\n */\n RestClient.prototype.updateRequestToBeCancellable = function (promise, cancelTokenSource) {\n this._cancelTokenMap.set(promise, cancelTokenSource);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestClient.prototype.endpoint = function (apiName) {\n var _this = this;\n var cloud_logic_array = this._options.endpoints;\n var response = '';\n if (!Array.isArray(cloud_logic_array)) {\n return response;\n }\n cloud_logic_array.forEach(function (v) {\n if (v.name === apiName) {\n response = v.endpoint;\n if (typeof v.region === 'string') {\n _this._region = v.region;\n }\n else if (typeof _this._options.region === 'string') {\n _this._region = _this._options.region;\n }\n if (typeof v.service === 'string') {\n _this._service = v.service || 'execute-api';\n }\n else {\n _this._service = 'execute-api';\n }\n if (typeof v.custom_header === 'function') {\n _this._custom_header = v.custom_header;\n }\n else {\n _this._custom_header = undefined;\n }\n }\n });\n return response;\n };\n /** private methods **/\n RestClient.prototype._sign = function (params, credentials, _a) {\n var service = _a.service, region = _a.region;\n var signerServiceInfoParams = params.signerServiceInfo, otherParams = __rest(params, [\"signerServiceInfo\"]);\n var endpoint_region = region || this._region || this._options.region;\n var endpoint_service = service || this._service || this._options.service;\n var creds = {\n secret_key: credentials.secretAccessKey,\n access_key: credentials.accessKeyId,\n session_token: credentials.sessionToken,\n };\n var endpointInfo = {\n region: endpoint_region,\n service: endpoint_service,\n };\n var signerServiceInfo = Object.assign(endpointInfo, signerServiceInfoParams);\n var signed_params = Signer.sign(otherParams, creds, signerServiceInfo);\n if (signed_params.data) {\n signed_params.body = signed_params.data;\n }\n logger.debug('Signed Request: ', signed_params);\n delete signed_params.headers['host'];\n return signed_params;\n };\n RestClient.prototype._request = function (params, isAllResponse) {\n if (isAllResponse === void 0) { isAllResponse = false; }\n return axios(params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._parseUrl = function (url) {\n var parts = url.split('/');\n return {\n host: parts[2],\n path: '/' + parts.slice(3).join('/'),\n };\n };\n return RestClient;\n}());\nexport { RestClient };\n//# sourceMappingURL=RestClient.js.map","import { __assign, __awaiter, __generator, __read, __rest } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { print, parse, GraphQLError, } from 'graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, getAmplifyUserAgent, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { InternalPubSub } from '@aws-amplify/pubsub/internals';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\nimport { GraphQLAuthError, } from '../types';\nimport { RestClient } from '@aws-amplify/api-rest';\nvar USER_AGENT_HEADER = 'x-amz-user-agent';\nvar logger = new Logger('GraphQLAPI');\nexport var graphqlOperation = function (query, variables, authToken) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n authToken: authToken,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar InternalGraphQLAPIClass = /** @class */ (function () {\n /**\n * Initialize GraphQL API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function InternalGraphQLAPIClass(options) {\n this._api = null;\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n InternalGraphQLAPIClass.prototype.getModuleName = function () {\n return 'InternalGraphQLAPI';\n };\n /**\n * Configure API\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n InternalGraphQLAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure GraphQL API', { opt: opt });\n if (opt['aws_project_region']) {\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (typeof opt.graphql_headers !== 'undefined' &&\n typeof opt.graphql_headers !== 'function') {\n logger.warn('graphql_headers should be a function');\n opt.graphql_headers = undefined;\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n InternalGraphQLAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest instance');\n if (this._options) {\n this._api = new RestClient(this._options);\n // Share instance Credentials with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n }\n else {\n return Promise.reject('API not configured');\n }\n };\n InternalGraphQLAPIClass.prototype._headerBasedAuth = function (defaultAuthenticationType, additionalHeaders) {\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, token, federatedInfo, currentUser, e_1, session, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey;\n authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n headers = {};\n _b = authenticationType;\n switch (_b) {\n case 'API_KEY': return [3 /*break*/, 1];\n case 'AWS_IAM': return [3 /*break*/, 2];\n case 'OPENID_CONNECT': return [3 /*break*/, 4];\n case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 11];\n case 'AWS_LAMBDA': return [3 /*break*/, 15];\n }\n return [3 /*break*/, 16];\n case 1:\n if (!apiKey) {\n throw new Error(GraphQLAuthError.NO_API_KEY);\n }\n headers = {\n Authorization: null,\n 'X-Api-Key': apiKey,\n };\n return [3 /*break*/, 17];\n case 2: return [4 /*yield*/, this._ensureCredentials()];\n case 3:\n credentialsOK = _c.sent();\n if (!credentialsOK) {\n throw new Error(GraphQLAuthError.NO_CREDENTIALS);\n }\n return [3 /*break*/, 17];\n case 4:\n _c.trys.push([4, 9, , 10]);\n token = void 0;\n return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 5:\n federatedInfo = _c.sent();\n if (!federatedInfo) return [3 /*break*/, 6];\n token = federatedInfo.token;\n return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 7:\n currentUser = _c.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _c.label = 8;\n case 8:\n if (!token) {\n throw new Error(GraphQLAuthError.NO_FEDERATED_JWT);\n }\n headers = {\n Authorization: token,\n };\n return [3 /*break*/, 10];\n case 9:\n e_1 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 10: return [3 /*break*/, 17];\n case 11:\n _c.trys.push([11, 13, , 14]);\n return [4 /*yield*/, this.Auth.currentSession()];\n case 12:\n session = _c.sent();\n headers = {\n Authorization: session.getAccessToken().getJwtToken(),\n };\n return [3 /*break*/, 14];\n case 13:\n e_2 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 14: return [3 /*break*/, 17];\n case 15:\n if (!additionalHeaders.Authorization) {\n throw new Error(GraphQLAuthError.NO_AUTH_TOKEN);\n }\n headers = {\n Authorization: additionalHeaders.Authorization,\n };\n return [3 /*break*/, 17];\n case 16:\n headers = {\n Authorization: null,\n };\n return [3 /*break*/, 17];\n case 17: return [2 /*return*/, headers];\n }\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n InternalGraphQLAPIClass.prototype.getGraphqlOperationType = function (operation) {\n var doc = parse(operation);\n var definitions = doc.definitions;\n var _a = __read(definitions, 1), operationType = _a[0].operation;\n return operationType;\n };\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n InternalGraphQLAPIClass.prototype.graphql = function (_a, additionalHeaders, customUserAgentDetails) {\n var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode, authToken = _a.authToken;\n var query = typeof paramQuery === 'string'\n ? parse(paramQuery)\n : parse(print(paramQuery));\n var _c = __read(query.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _d = _c[0], operationDef = _d === void 0 ? {} : _d;\n var operationType = operationDef.operation;\n var headers = additionalHeaders || {};\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n headers.Authorization = authToken;\n }\n switch (operationType) {\n case 'query':\n case 'mutation':\n this.createInstanceIfNotCreated();\n var cancellableToken = this._api.getCancellableToken();\n var initParams = {\n cancellableToken: cancellableToken,\n withCredentials: this._options.withCredentials,\n };\n var responsePromise = this._graphql({ query: query, variables: variables, authMode: authMode }, headers, initParams, customUserAgentDetails);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n case 'subscription':\n return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }, headers, customUserAgentDetails);\n default:\n throw new Error(\"invalid operation type: \" + operationType);\n }\n };\n InternalGraphQLAPIClass.prototype._graphql = function (_a, additionalHeaders, initParams, customUserAgentDetails) {\n var query = _a.query, variables = _a.variables, authMode = _a.authMode;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n if (initParams === void 0) { initParams = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _b, region, appSyncGraphqlEndpoint, _c, graphql_headers, customGraphqlEndpoint, customEndpointRegion, headers, _d, _e, _f, _g, _h, _j, body, init, endpoint, error, response, err_1, errors;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n this.createInstanceIfNotCreated();\n _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, customGraphqlEndpoint = _b.graphql_endpoint, customEndpointRegion = _b.graphql_endpoint_iam_region;\n _d = [{}];\n _e = !customGraphqlEndpoint;\n if (!_e) return [3 /*break*/, 2];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 1:\n _e = (_l.sent());\n _l.label = 2;\n case 2:\n _f = [__assign.apply(void 0, _d.concat([(_e)]))];\n _g = customGraphqlEndpoint;\n if (!_g) return [3 /*break*/, 6];\n if (!customEndpointRegion) return [3 /*break*/, 4];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 3:\n _h = _l.sent();\n return [3 /*break*/, 5];\n case 4:\n _h = { Authorization: null };\n _l.label = 5;\n case 5:\n _g = (_h);\n _l.label = 6;\n case 6:\n _j = [__assign.apply(void 0, _f.concat([(_g)]))];\n return [4 /*yield*/, graphql_headers({ query: query, variables: variables })];\n case 7:\n headers = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), additionalHeaders]), (!customGraphqlEndpoint && (_k = {},\n _k[USER_AGENT_HEADER] = getAmplifyUserAgent(customUserAgentDetails),\n _k))]);\n body = {\n query: print(query),\n variables: variables,\n };\n init = Object.assign({\n headers: headers,\n body: body,\n signerServiceInfo: {\n service: !customGraphqlEndpoint ? 'appsync' : 'execute-api',\n region: !customGraphqlEndpoint ? region : customEndpointRegion,\n },\n }, initParams);\n endpoint = customGraphqlEndpoint || appSyncGraphqlEndpoint;\n if (!endpoint) {\n error = new GraphQLError('No graphql endpoint provided.');\n throw {\n data: {},\n errors: [error],\n };\n }\n _l.label = 8;\n case 8:\n _l.trys.push([8, 10, , 11]);\n return [4 /*yield*/, this._api.post(endpoint, init)];\n case 9:\n response = _l.sent();\n return [3 /*break*/, 11];\n case 10:\n err_1 = _l.sent();\n // If the exception is because user intentionally\n // cancelled the request, do not modify the exception\n // so that clients can identify the exception correctly.\n if (this._api.isCancel(err_1)) {\n throw err_1;\n }\n response = {\n data: {},\n errors: [new GraphQLError(err_1.message, null, null, null, null, err_1)],\n };\n return [3 /*break*/, 11];\n case 11:\n errors = response.errors;\n if (errors && errors.length) {\n throw response;\n }\n return [2 /*return*/, response];\n }\n });\n });\n };\n InternalGraphQLAPIClass.prototype.createInstanceIfNotCreated = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 2];\n return [4 /*yield*/, this.createInstance()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n InternalGraphQLAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request. Only applicable for graphql queries and mutations\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n InternalGraphQLAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n InternalGraphQLAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n InternalGraphQLAPIClass.prototype._graphqlSubscribe = function (_a, additionalHeaders, customUserAgentDetails) {\n var query = _a.query, variables = _a.variables, defaultAuthenticationType = _a.authMode, authToken = _a.authToken;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n var _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, aws_appsync_authenticationType = _b.aws_appsync_authenticationType, apiKey = _b.aws_appsync_apiKey, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c;\n var authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n if (InternalPubSub && typeof InternalPubSub.subscribe === 'function') {\n return InternalPubSub.subscribe('', {\n provider: INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n apiKey: apiKey,\n query: print(query),\n region: region,\n variables: variables,\n graphql_headers: graphql_headers,\n additionalHeaders: additionalHeaders,\n authToken: authToken,\n }, customUserAgentDetails);\n }\n else {\n logger.debug('No pubsub module applied for subscription');\n throw new Error('No pubsub module applied for subscription');\n }\n };\n /**\n * @private\n */\n InternalGraphQLAPIClass.prototype._ensureCredentials = function () {\n var _this = this;\n return this.Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = _this.Credentials.shear(credentials);\n logger.debug('set credentials for api', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return InternalGraphQLAPIClass;\n}());\nexport { InternalGraphQLAPIClass };\nexport var InternalGraphQLAPI = new InternalGraphQLAPIClass(null);\nAmplify.register(InternalGraphQLAPI);\n//# sourceMappingURL=InternalGraphQLAPI.js.map","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { RestClient } from './RestClient';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } from '@aws-amplify/core';\nvar logger = new Logger('RestAPI');\n/**\n * Export Cloud Logic APIs\n */\nvar RestAPIClass = /** @class */ (function () {\n /**\n * Initialize Rest API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function RestAPIClass(options) {\n this._api = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n RestAPIClass.prototype.getModuleName = function () {\n return 'RestAPI';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n RestAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure Rest API', { opt: opt });\n if (opt['aws_project_region']) {\n if (opt['aws_cloud_logic_custom']) {\n var custom = opt['aws_cloud_logic_custom'];\n opt.endpoints =\n typeof custom === 'string' ? JSON.parse(custom) : custom;\n }\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (Array.isArray(opt.endpoints)) {\n // Check if endpoints has custom_headers and validate if is a function\n opt.endpoints.forEach(function (endpoint) {\n if (typeof endpoint.custom_header !== 'undefined' &&\n typeof endpoint.custom_header !== 'function') {\n logger.warn('Rest API ' + endpoint.name + ', custom_header should be a function');\n endpoint.custom_header = undefined;\n }\n });\n }\n else if (this._options && Array.isArray(this._options.endpoints)) {\n opt.endpoints = this._options.endpoints;\n }\n else {\n opt.endpoints = [];\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n RestAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest API instance');\n this._api = new RestClient(this._options);\n // Share Amplify instance with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n };\n /**\n * Make a GET request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.get = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.get(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a POST request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.post = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.post(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PUT request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.put = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.put(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PATCH request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.patch = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.patch(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a DEL request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.del = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.del(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a HEAD request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.head = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.head(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n RestAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestAPIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._api.endpoint(apiName)];\n });\n });\n };\n /**\n * Getting endpoint info for API\n * @param {string} apiName - The name of the api\n * @param {string} path - The path of the api that is going to accessed\n * @return {ApiInfo} - The endpoint information for that api-name\n */\n RestAPIClass.prototype.getEndpointInfo = function (apiName, path) {\n var cloud_logic_array = this._options.endpoints;\n if (!Array.isArray(cloud_logic_array)) {\n throw new Error(\"API category not configured\");\n }\n var apiConfig = cloud_logic_array.find(function (api) { return api.name === apiName; });\n if (!apiConfig) {\n throw new Error(\"API \" + apiName + \" does not exist\");\n }\n var response = {\n endpoint: apiConfig.endpoint + path,\n };\n if (typeof apiConfig.region === 'string') {\n response.region = apiConfig.region;\n }\n else if (typeof this._options.region === 'string') {\n response.region = this._options.region;\n }\n if (typeof apiConfig.service === 'string') {\n response.service = apiConfig.service || 'execute-api';\n }\n else {\n response.service = 'execute-api';\n }\n if (typeof apiConfig.custom_header === 'function') {\n response.custom_header = apiConfig.custom_header;\n }\n else {\n response.custom_header = undefined;\n }\n return response;\n };\n return RestAPIClass;\n}());\nexport { RestAPIClass };\nexport var RestAPI = new RestAPIClass(null);\nAmplify.register(RestAPI);\n//# sourceMappingURL=RestAPI.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { InternalGraphQLAPIClass } from '@aws-amplify/api-graphql/internals';\nimport { RestAPIClass } from '@aws-amplify/api-rest';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\nimport { Amplify, ApiAction, Category, Credentials, ConsoleLogger as Logger, } from '@aws-amplify/core';\nvar logger = new Logger('API');\n/**\n * @deprecated\n * Use RestApi or GraphQLAPI to reduce your application bundle size\n * Export Cloud Logic APIs\n */\nvar InternalAPIClass = /** @class */ (function () {\n /**\n * Initialize API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function InternalAPIClass(options) {\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n this._restApi = new RestAPIClass(options);\n this._graphqlApi = new InternalGraphQLAPIClass(options);\n logger.debug('API Options', this._options);\n }\n InternalAPIClass.prototype.getModuleName = function () {\n return 'InternalAPI';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n InternalAPIClass.prototype.configure = function (options) {\n this._options = Object.assign({}, this._options, options);\n // Share Amplify instance with client for SSR\n this._restApi.Credentials = this.Credentials;\n this._graphqlApi.Auth = this.Auth;\n this._graphqlApi.Cache = this.Cache;\n this._graphqlApi.Credentials = this.Credentials;\n var restAPIConfig = this._restApi.configure(this._options);\n var graphQLAPIConfig = this._graphqlApi.configure(this._options);\n return __assign(__assign({}, restAPIConfig), graphQLAPIConfig);\n };\n /**\n * Make a GET request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.get = function (apiName, path, init) {\n return this._restApi.get(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Get));\n };\n /**\n * Make a POST request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.post = function (apiName, path, init) {\n return this._restApi.post(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Post));\n };\n /**\n * Make a PUT request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.put = function (apiName, path, init) {\n return this._restApi.put(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Put));\n };\n /**\n * Make a PATCH request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.patch = function (apiName, path, init) {\n return this._restApi.patch(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Patch));\n };\n /**\n * Make a DEL request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.del = function (apiName, path, init) {\n return this._restApi.del(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Del));\n };\n /**\n * Make a HEAD request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n InternalAPIClass.prototype.head = function (apiName, path, init) {\n return this._restApi.head(apiName, path, this.getInitWithCustomUserAgentDetails(init, ApiAction.Head));\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param error - Any error\n * @return If the error was from an api request cancellation\n */\n InternalAPIClass.prototype.isCancel = function (error) {\n return this._restApi.isCancel(error);\n };\n /**\n * Cancels an inflight request for either a GraphQL request or a Rest API request.\n * @param request - request to cancel\n * @param [message] - custom error message\n * @return If the request was cancelled\n */\n InternalAPIClass.prototype.cancel = function (request, message) {\n if (this._restApi.hasCancelToken(request)) {\n return this._restApi.cancel(request, message);\n }\n else if (this._graphqlApi.hasCancelToken(request)) {\n return this._graphqlApi.cancel(request, message);\n }\n return false;\n };\n InternalAPIClass.prototype.getInitWithCustomUserAgentDetails = function (init, action) {\n var customUserAgentDetails = {\n category: Category.API,\n action: action,\n };\n var initParams = __assign(__assign({}, init), { customUserAgentDetails: customUserAgentDetails });\n return initParams;\n };\n /**\n * Getting endpoint for API\n * @param apiName - The name of the api\n * @return The endpoint of the api\n */\n InternalAPIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._restApi.endpoint(apiName)];\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n InternalAPIClass.prototype.getGraphqlOperationType = function (operation) {\n return this._graphqlApi.getGraphqlOperationType(operation);\n };\n InternalAPIClass.prototype.graphql = function (options, additionalHeaders, customUserAgentDetails) {\n var apiUserAgentDetails = __assign({ category: Category.API, action: ApiAction.GraphQl }, customUserAgentDetails);\n return this._graphqlApi.graphql(options, additionalHeaders, apiUserAgentDetails);\n };\n return InternalAPIClass;\n}());\nexport { InternalAPIClass };\nexport var InternalAPI = new InternalAPIClass(null);\nAmplify.register(InternalAPI);\n//# sourceMappingURL=InternalAPI.js.map","import { __extends } from \"tslib\";\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { InternalAPIClass } from './internals/InternalAPI';\nvar logger = new Logger('API');\n/**\n * @deprecated\n * Use RestApi or GraphQLAPI to reduce your application bundle size\n * Export Cloud Logic APIs\n */\nvar APIClass = /** @class */ (function (_super) {\n __extends(APIClass, _super);\n function APIClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n APIClass.prototype.getModuleName = function () {\n return 'API';\n };\n APIClass.prototype.graphql = function (options, additionalHeaders) {\n return _super.prototype.graphql.call(this, options, additionalHeaders);\n };\n return APIClass;\n}(InternalAPIClass));\nexport { APIClass };\nexport var API = new APIClass(null);\nAmplify.register(API);\n//# sourceMappingURL=API.js.map","import { __extends } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { InternalGraphQLAPIClass } from './internals';\nexport var graphqlOperation = function (query, variables, authToken) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n authToken: authToken,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar GraphQLAPIClass = /** @class */ (function (_super) {\n __extends(GraphQLAPIClass, _super);\n function GraphQLAPIClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GraphQLAPIClass.prototype.getModuleName = function () {\n return 'GraphQLAPI';\n };\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n GraphQLAPIClass.prototype.graphql = function (options, additionalHeaders) {\n return _super.prototype.graphql.call(this, options, additionalHeaders);\n };\n return GraphQLAPIClass;\n}(InternalGraphQLAPIClass));\nexport { GraphQLAPIClass };\nexport var GraphQLAPI = new GraphQLAPIClass(null);\nAmplify.register(GraphQLAPI);\n//# sourceMappingURL=GraphQLAPI.js.map","function createError(message) {\n var err = new Error(message);\n err.source = \"ulid\";\n return err;\n}\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nvar ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nvar ENCODING_LEN = ENCODING.length;\nvar TIME_MAX = Math.pow(2, 48) - 1;\nvar TIME_LEN = 10;\nvar RANDOM_LEN = 16;\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\nfunction incrementBase32(str) {\n var done = undefined;\n var index = str.length;\n var char = void 0;\n var charIndex = void 0;\n var maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError(\"incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw createError(\"cannot increment this string\");\n}\nfunction randomChar(prng) {\n var rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Error(now + \" must be a number\");\n }\n if (now > TIME_MAX) {\n throw createError(\"cannot encode time greater than \" + TIME_MAX);\n }\n if (now < 0) {\n throw createError(\"time must be positive\");\n }\n if (Number.isInteger(now) === false) {\n throw createError(\"time must be an integer\");\n }\n var mod = void 0;\n var str = \"\";\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction encodeRandom(len, prng) {\n var str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError(\"malformed ulid\");\n }\n var time = id.substr(0, TIME_LEN).split(\"\").reverse().reduce(function (carry, char, index) {\n var encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError(\"invalid character found: \" + char);\n }\n return carry += encodingIndex * Math.pow(ENCODING_LEN, index);\n }, 0);\n if (time > TIME_MAX) {\n throw createError(\"malformed ulid, timestamp too large\");\n }\n return time;\n}\nfunction detectPrng() {\n var allowInsecure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var root = arguments[1];\n\n if (!root) {\n root = typeof window !== \"undefined\" ? window : null;\n }\n var browserCrypto = root && (root.crypto || root.msCrypto);\n if (browserCrypto) {\n return function () {\n var buffer = new Uint8Array(1);\n browserCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n } else {\n try {\n var nodeCrypto = require(\"crypto\");\n return function () {\n return nodeCrypto.randomBytes(1).readUInt8() / 0xff;\n };\n } catch (e) {}\n }\n if (allowInsecure) {\n try {\n console.error(\"secure crypto unusable, falling back to insecure Math.random()!\");\n } catch (e) {}\n return function () {\n return Math.random();\n };\n }\n throw createError(\"secure crypto unusable, insecure Math.random not allowed\");\n}\nfunction factory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);\n };\n}\nfunction monotonicFactory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n var lastTime = 0;\n var lastRandom = void 0;\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n if (seedTime <= lastTime) {\n var incrementedRandom = lastRandom = incrementBase32(lastRandom);\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n var newRandom = lastRandom = encodeRandom(RANDOM_LEN, currPrng);\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\nvar ulid = factory();\n\nexport { replaceCharAt, incrementBase32, randomChar, encodeTime, encodeRandom, decodeTime, detectPrng, factory, monotonicFactory, ulid };\n","import { __assign, __awaiter, __generator, __read, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Buffer } from 'buffer';\nimport { monotonicFactory } from 'ulid';\nimport { v4 as uuid } from 'uuid';\nimport { produce, applyPatches } from 'immer';\nimport { isPredicateGroup, isPredicateObj, SortDirection, isModelAttributeKey, isModelAttributePrimaryKey, isModelAttributeCompositeKey, LimitTimerRaceResolvedValues, } from './types';\nimport { WordArray } from 'amazon-cognito-identity-js';\nimport { ModelSortPredicateCreator } from './predicates';\nexport var ID = 'id';\n/**\n * Used by the Async Storage Adapter to concatenate key values\n * for a record. For instance, if a model has the following keys:\n * `customId: ID! @primaryKey(sortKeyFields: [\"createdAt\"])`,\n * we concatenate the `customId` and `createdAt` as:\n * `12-234-5#2022-09-28T00:00:00.000Z`\n */\nexport var DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = '#';\n/**\n * Used for generating spinal-cased index name from an array of\n * key field names.\n * E.g. for keys `[id, title]` => 'id-title'\n */\nexport var IDENTIFIER_KEY_SEPARATOR = '-';\nexport var errorMessages = {\n idEmptyString: 'An index field cannot contain an empty string value',\n queryByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be queried by a single key value. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n deleteByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be deleted by a single key value, unless using a predicate. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n observeWithObjectLiteral: 'Object literal syntax cannot be used with observe. Use a predicate instead: https://docs.amplify.aws/lib/datastore/data-access/q/platform/js/#predicates',\n};\nexport var NAMESPACES;\n(function (NAMESPACES) {\n NAMESPACES[\"DATASTORE\"] = \"datastore\";\n NAMESPACES[\"USER\"] = \"user\";\n NAMESPACES[\"SYNC\"] = \"sync\";\n NAMESPACES[\"STORAGE\"] = \"storage\";\n})(NAMESPACES || (NAMESPACES = {}));\nvar DATASTORE = NAMESPACES.DATASTORE;\nvar USER = NAMESPACES.USER;\nvar SYNC = NAMESPACES.SYNC;\nvar STORAGE = NAMESPACES.STORAGE;\nexport { USER, SYNC, STORAGE, DATASTORE };\nexport var exhaustiveCheck = function (obj, throwOnError) {\n if (throwOnError === void 0) { throwOnError = true; }\n if (throwOnError) {\n throw new Error(\"Invalid \" + obj);\n }\n};\nexport var isNullOrUndefined = function (val) {\n return typeof val === 'undefined' || val === undefined || val === null;\n};\nexport var validatePredicate = function (model, groupType, predicatesOrGroups) {\n var filterType;\n var isNegation = false;\n if (predicatesOrGroups.length === 0) {\n return true;\n }\n switch (groupType) {\n case 'not':\n filterType = 'every';\n isNegation = true;\n break;\n case 'and':\n filterType = 'every';\n break;\n case 'or':\n filterType = 'some';\n break;\n default:\n throw new Error(\"Invalid \" + groupType);\n }\n var result = predicatesOrGroups[filterType](function (predicateOrGroup) {\n if (isPredicateObj(predicateOrGroup)) {\n var field = predicateOrGroup.field, operator = predicateOrGroup.operator, operand = predicateOrGroup.operand;\n var value = model[field];\n return validatePredicateField(value, operator, operand);\n }\n if (isPredicateGroup(predicateOrGroup)) {\n var type = predicateOrGroup.type, predicates = predicateOrGroup.predicates;\n return validatePredicate(model, type, predicates);\n }\n throw new Error('Not a predicate or group');\n });\n return isNegation ? !result : result;\n};\nexport var validatePredicateField = function (value, operator, operand) {\n switch (operator) {\n case 'ne':\n return value !== operand;\n case 'eq':\n return value === operand;\n case 'le':\n return value <= operand;\n case 'lt':\n return value < operand;\n case 'ge':\n return value >= operand;\n case 'gt':\n return value > operand;\n case 'between':\n var _c = __read(operand, 2), min = _c[0], max = _c[1];\n return value >= min && value <= max;\n case 'beginsWith':\n return (!isNullOrUndefined(value) &&\n value.startsWith(operand));\n case 'contains':\n return (!isNullOrUndefined(value) &&\n value.indexOf(operand) > -1);\n case 'notContains':\n return (isNullOrUndefined(value) ||\n value.indexOf(operand) === -1);\n default:\n return false;\n }\n};\nexport var isModelConstructor = function (obj) {\n return (obj && typeof obj.copyOf === 'function');\n};\nvar nonModelClasses = new WeakSet();\nexport function registerNonModelClass(clazz) {\n nonModelClasses.add(clazz);\n}\nexport var isNonModelConstructor = function (obj) {\n return nonModelClasses.has(obj);\n};\nvar topologicallySortedModels = new WeakMap();\nexport var traverseModel = function (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) {\n var modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);\n var result = [];\n var newInstance = modelConstructor.copyOf(instance, function () { });\n result.unshift({\n modelName: srcModelName,\n item: newInstance,\n instance: newInstance,\n });\n if (!topologicallySortedModels.has(namespace)) {\n topologicallySortedModels.set(namespace, Array.from(namespace.modelTopologicalOrdering.keys()));\n }\n var sortedModels = topologicallySortedModels.get(namespace);\n result.sort(function (a, b) {\n return (sortedModels.indexOf(a.modelName) - sortedModels.indexOf(b.modelName));\n });\n return result;\n};\nvar privateModeCheckResult;\nexport var isPrivateMode = function () {\n return new Promise(function (resolve) {\n var dbname = uuid();\n var db;\n var isPrivate = function () {\n privateModeCheckResult = false;\n resolve(true);\n };\n var isNotPrivate = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(db && db.result && typeof db.result.close === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, db.result.close()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2: return [4 /*yield*/, indexedDB.deleteDatabase(dbname)];\n case 3:\n _c.sent();\n privateModeCheckResult = true;\n return [2 /*return*/, resolve(false)];\n }\n });\n }); };\n if (privateModeCheckResult === true) {\n return isNotPrivate();\n }\n if (privateModeCheckResult === false) {\n return isPrivate();\n }\n if (indexedDB === null)\n return isPrivate();\n db = indexedDB.open(dbname);\n db.onerror = isPrivate;\n db.onsuccess = isNotPrivate;\n });\n};\nvar safariCompatabilityModeResult;\n/**\n * Whether the browser's implementation of IndexedDB breaks on array lookups\n * against composite indexes whose keypath contains a single column.\n *\n * E.g., Whether `store.createIndex(indexName, ['id'])` followed by\n * `store.index(indexName).get([1])` will *ever* return records.\n *\n * In all known, modern Safari browsers as of Q4 2022, the query against an index like\n * this will *always* return `undefined`. So, the index needs to be created as a scalar.\n */\nexport var isSafariCompatabilityMode = function () { return __awaiter(void 0, void 0, void 0, function () {\n var dbName_1, storeName_1, indexName_1, db_1, rwTx, rwStore, result, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 6, , 7]);\n dbName_1 = uuid();\n storeName_1 = 'indexedDBFeatureProbeStore';\n indexName_1 = 'idx';\n if (indexedDB === null)\n return [2 /*return*/, false];\n if (safariCompatabilityModeResult !== undefined) {\n return [2 /*return*/, safariCompatabilityModeResult];\n }\n return [4 /*yield*/, new Promise(function (resolve) {\n var dbOpenRequest = indexedDB.open(dbName_1);\n dbOpenRequest.onerror = function () { return resolve(false); };\n dbOpenRequest.onsuccess = function () {\n var db = dbOpenRequest.result;\n resolve(db);\n };\n dbOpenRequest.onupgradeneeded = function (event) {\n var _c;\n var db = (_c = event === null || event === void 0 ? void 0 : event.target) === null || _c === void 0 ? void 0 : _c.result;\n db.onerror = function () { return resolve(false); };\n var store = db.createObjectStore(storeName_1, {\n autoIncrement: true,\n });\n store.createIndex(indexName_1, ['id']);\n };\n })];\n case 1:\n db_1 = _c.sent();\n if (!db_1) {\n throw new Error('Could not open probe DB');\n }\n rwTx = db_1.transaction(storeName_1, 'readwrite');\n rwStore = rwTx.objectStore(storeName_1);\n rwStore.add({\n id: 1,\n });\n rwTx.commit();\n return [4 /*yield*/, new Promise(function (resolve) {\n var tx = db_1.transaction(storeName_1, 'readonly');\n var store = tx.objectStore(storeName_1);\n var index = store.index(indexName_1);\n var getRequest = index.get([1]);\n getRequest.onerror = function () { return resolve(false); };\n getRequest.onsuccess = function (event) {\n var _c;\n resolve((_c = event === null || event === void 0 ? void 0 : event.target) === null || _c === void 0 ? void 0 : _c.result);\n };\n })];\n case 2:\n result = _c.sent();\n if (!(db_1 && typeof db_1.close === 'function')) return [3 /*break*/, 4];\n return [4 /*yield*/, db_1.close()];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4: return [4 /*yield*/, indexedDB.deleteDatabase(dbName_1)];\n case 5:\n _c.sent();\n if (result === undefined) {\n safariCompatabilityModeResult = true;\n }\n else {\n safariCompatabilityModeResult = false;\n }\n return [3 /*break*/, 7];\n case 6:\n error_1 = _c.sent();\n safariCompatabilityModeResult = false;\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/, safariCompatabilityModeResult];\n }\n });\n}); };\nvar randomBytes = function (nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n};\nvar prng = function () { return randomBytes(1).readUInt8(0) / 0xff; };\nexport function monotonicUlidFactory(seed) {\n var ulid = monotonicFactory(prng);\n return function () {\n return ulid(seed);\n };\n}\n/**\n * Uses performance.now() if available, otherwise, uses Date.now() (e.g. react native without a polyfill)\n *\n * The values returned by performance.now() always increase at a constant rate,\n * independent of the system clock (which might be adjusted manually or skewed\n * by software like NTP).\n *\n * Otherwise, performance.timing.navigationStart + performance.now() will be\n * approximately equal to Date.now()\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Performance/now#Example\n */\nexport function getNow() {\n if (typeof performance !== 'undefined' &&\n performance &&\n typeof performance.now === 'function') {\n return performance.now() | 0; // convert to integer\n }\n else {\n return Date.now();\n }\n}\nexport function sortCompareFunction(sortPredicates) {\n return function compareFunction(a, b) {\n var e_1, _c;\n try {\n // enable multi-field sort by iterating over predicates until\n // a comparison returns -1 or 1\n for (var sortPredicates_1 = __values(sortPredicates), sortPredicates_1_1 = sortPredicates_1.next(); !sortPredicates_1_1.done; sortPredicates_1_1 = sortPredicates_1.next()) {\n var predicate = sortPredicates_1_1.value;\n var field = predicate.field, sortDirection = predicate.sortDirection;\n // reverse result when direction is descending\n var sortMultiplier = sortDirection === SortDirection.ASCENDING ? 1 : -1;\n if (a[field] < b[field]) {\n return -1 * sortMultiplier;\n }\n if (a[field] > b[field]) {\n return 1 * sortMultiplier;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (sortPredicates_1_1 && !sortPredicates_1_1.done && (_c = sortPredicates_1.return)) _c.call(sortPredicates_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return 0;\n };\n}\n// deep compare any 2 values\n// primitives or object types (including arrays, Sets, and Maps)\n// returns true if equal by value\n// if nullish is true, treat undefined and null values as equal\n// to normalize for GQL response values for undefined fields\nexport function valuesEqual(valA, valB, nullish) {\n var e_2, _c;\n if (nullish === void 0) { nullish = false; }\n var a = valA;\n var b = valB;\n var nullishCompare = function (_a, _b) {\n return ((_a === undefined || _a === null) && (_b === undefined || _b === null));\n };\n // if one of the values is a primitive and the other is an object\n if ((a instanceof Object && !(b instanceof Object)) ||\n (!(a instanceof Object) && b instanceof Object)) {\n return false;\n }\n // compare primitive types\n if (!(a instanceof Object)) {\n if (nullish && nullishCompare(a, b)) {\n return true;\n }\n return a === b;\n }\n // make sure object types match\n if ((Array.isArray(a) && !Array.isArray(b)) ||\n (Array.isArray(b) && !Array.isArray(a))) {\n return false;\n }\n if (a instanceof Set && b instanceof Set) {\n a = __spread(a);\n b = __spread(b);\n }\n if (a instanceof Map && b instanceof Map) {\n a = Object.fromEntries(a);\n b = Object.fromEntries(b);\n }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n // last condition is to ensure that [] !== [null] even if nullish. However [undefined] === [null] when nullish\n if (aKeys.length !== bKeys.length && (!nullish || Array.isArray(a))) {\n return false;\n }\n // iterate through the longer set of keys\n // e.g., for a nullish comparison of a={ a: 1 } and b={ a: 1, b: null }\n // we want to iterate through bKeys\n var keys = aKeys.length >= bKeys.length ? aKeys : bKeys;\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n var aVal = a[key];\n var bVal = b[key];\n if (!valuesEqual(aVal, bVal, nullish)) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_c = keys_1.return)) _c.call(keys_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n}\n/**\n * Statelessly extracts the specified page from an array.\n *\n * @param records - The source array to extract a page from.\n * @param pagination - A definition of the page to extract.\n * @returns This items from `records` matching the `pagination` definition.\n */\nexport function inMemoryPagination(records, pagination) {\n if (pagination && records.length > 1) {\n if (pagination.sort) {\n var sortPredicates = ModelSortPredicateCreator.getPredicates(pagination.sort);\n if (sortPredicates.length) {\n var compareFn = sortCompareFunction(sortPredicates);\n records.sort(compareFn);\n }\n }\n var _c = pagination.page, page = _c === void 0 ? 0 : _c, _d = pagination.limit, limit = _d === void 0 ? 0 : _d;\n var start = Math.max(0, page * limit) || 0;\n var end = limit > 0 ? start + limit : records.length;\n return records.slice(start, end);\n }\n return records;\n}\n/**\n * An `aysnc` implementation of `Array.some()`. Returns as soon as a match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise: `true` for a matching item, `false` otherwise.\n * @returns A `Promise`, `true` if \"some\" items match; `false` otherwise.\n */\nexport function asyncSome(items, matches) {\n return __awaiter(this, void 0, void 0, function () {\n var items_1, items_1_1, item, e_3_1;\n var e_3, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 5, 6, 7]);\n items_1 = __values(items), items_1_1 = items_1.next();\n _d.label = 1;\n case 1:\n if (!!items_1_1.done) return [3 /*break*/, 4];\n item = items_1_1.value;\n return [4 /*yield*/, matches(item)];\n case 2:\n if (_d.sent()) {\n return [2 /*return*/, true];\n }\n _d.label = 3;\n case 3:\n items_1_1 = items_1.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_3_1 = _d.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (items_1_1 && !items_1_1.done && (_c = items_1.return)) _c.call(items_1);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/, false];\n }\n });\n });\n}\n/**\n * An `aysnc` implementation of `Array.every()`. Returns as soon as a non-match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise: `true` for a matching item, `false` otherwise.\n * @returns A `Promise`, `true` if every item matches; `false` otherwise.\n */\nexport function asyncEvery(items, matches) {\n return __awaiter(this, void 0, void 0, function () {\n var items_2, items_2_1, item, e_4_1;\n var e_4, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 5, 6, 7]);\n items_2 = __values(items), items_2_1 = items_2.next();\n _d.label = 1;\n case 1:\n if (!!items_2_1.done) return [3 /*break*/, 4];\n item = items_2_1.value;\n return [4 /*yield*/, matches(item)];\n case 2:\n if (!(_d.sent())) {\n return [2 /*return*/, false];\n }\n _d.label = 3;\n case 3:\n items_2_1 = items_2.next();\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 7];\n case 5:\n e_4_1 = _d.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 7];\n case 6:\n try {\n if (items_2_1 && !items_2_1.done && (_c = items_2.return)) _c.call(items_2);\n }\n finally { if (e_4) throw e_4.error; }\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/, true];\n }\n });\n });\n}\n/**\n * An `async` implementation of `Array.filter()`. Returns after all items have been filtered.\n * TODO: Return AsyncIterable.\n * @param items The items to filter.\n * @param matches The `async` matcher function, expected to\n * return Promise: `true` for a matching item, `false` otherwise.\n * @returns A `Promise` of matching items.\n */\nexport function asyncFilter(items, matches) {\n return __awaiter(this, void 0, void 0, function () {\n var results, items_3, items_3_1, item, e_5_1;\n var e_5, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n results = [];\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n items_3 = __values(items), items_3_1 = items_3.next();\n _d.label = 2;\n case 2:\n if (!!items_3_1.done) return [3 /*break*/, 5];\n item = items_3_1.value;\n return [4 /*yield*/, matches(item)];\n case 3:\n if (_d.sent()) {\n results.push(item);\n }\n _d.label = 4;\n case 4:\n items_3_1 = items_3.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_5_1 = _d.sent();\n e_5 = { error: e_5_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (items_3_1 && !items_3_1.done && (_c = items_3.return)) _c.call(items_3);\n }\n finally { if (e_5) throw e_5.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/, results];\n }\n });\n });\n}\nexport var isAWSDate = function (val) {\n return !!/^\\d{4}-\\d{2}-\\d{2}(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport var isAWSTime = function (val) {\n return !!/^\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport var isAWSDateTime = function (val) {\n return !!/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport var isAWSTimestamp = function (val) {\n return !!/^\\d+$/.exec(String(val));\n};\nexport var isAWSEmail = function (val) {\n return !!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.exec(val);\n};\nexport var isAWSJSON = function (val) {\n try {\n JSON.parse(val);\n return true;\n }\n catch (_c) {\n return false;\n }\n};\nexport var isAWSURL = function (val) {\n try {\n return !!new URL(val);\n }\n catch (_c) {\n return false;\n }\n};\nexport var isAWSPhone = function (val) {\n return !!/^\\+?\\d[\\d\\s-]+$/.exec(val);\n};\nexport var isAWSIPAddress = function (val) {\n return !!/((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?$))$/.exec(val);\n};\nvar DeferredPromise = /** @class */ (function () {\n function DeferredPromise() {\n var self = this;\n this.promise = new Promise(function (resolve, reject) {\n self.resolve = resolve;\n self.reject = reject;\n });\n }\n return DeferredPromise;\n}());\nexport { DeferredPromise };\nvar DeferredCallbackResolver = /** @class */ (function () {\n function DeferredCallbackResolver(options) {\n this.limitPromise = new DeferredPromise();\n this.raceInFlight = false;\n this.callback = function () { };\n this.defaultErrorHandler = function (msg) {\n if (msg === void 0) { msg = 'DeferredCallbackResolver error'; }\n throw new Error(msg);\n };\n this.callback = options.callback;\n this.errorHandler = options.errorHandler || this.defaultErrorHandler;\n this.maxInterval = options.maxInterval || 2000;\n }\n DeferredCallbackResolver.prototype.startTimer = function () {\n var _this = this;\n this.timerPromise = new Promise(function (resolve, reject) {\n _this.timer = setTimeout(function () {\n resolve(LimitTimerRaceResolvedValues.TIMER);\n }, _this.maxInterval);\n });\n };\n DeferredCallbackResolver.prototype.racePromises = function () {\n return __awaiter(this, void 0, void 0, function () {\n var winner, err_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 2, 3, 4]);\n this.raceInFlight = true;\n this.startTimer();\n return [4 /*yield*/, Promise.race([\n this.timerPromise,\n this.limitPromise.promise,\n ])];\n case 1:\n winner = _c.sent();\n this.callback();\n return [3 /*break*/, 4];\n case 2:\n err_1 = _c.sent();\n this.errorHandler(err_1);\n return [3 /*break*/, 4];\n case 3:\n // reset for the next race\n this.clear();\n this.raceInFlight = false;\n this.limitPromise = new DeferredPromise();\n return [2 /*return*/, winner];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n DeferredCallbackResolver.prototype.start = function () {\n if (!this.raceInFlight)\n this.racePromises();\n };\n DeferredCallbackResolver.prototype.clear = function () {\n clearTimeout(this.timer);\n };\n DeferredCallbackResolver.prototype.resolve = function () {\n this.limitPromise.resolve(LimitTimerRaceResolvedValues.LIMIT);\n };\n return DeferredCallbackResolver;\n}());\nexport { DeferredCallbackResolver };\n/**\n * merge two sets of patches created by immer produce.\n * newPatches take precedent over oldPatches for patches modifying the same path.\n * In the case many consecutive pathces are merged the original model should\n * always be the root model.\n *\n * Example:\n * A -> B, patches1\n * B -> C, patches2\n *\n * mergePatches(A, patches1, patches2) to get patches for A -> C\n *\n * @param originalSource the original Model the patches should be applied to\n * @param oldPatches immer produce patch list\n * @param newPatches immer produce patch list (will take precedence)\n * @return merged patches\n */\nexport function mergePatches(originalSource, oldPatches, newPatches) {\n var patchesToMerge = oldPatches.concat(newPatches);\n var patches;\n produce(originalSource, function (draft) {\n applyPatches(draft, patchesToMerge);\n }, function (p) {\n patches = p;\n });\n return patches;\n}\nexport var getStorename = function (namespace, modelName) {\n var storeName = namespace + \"_\" + modelName;\n return storeName;\n};\n//#region Key Utils\n/*\n When we have GSI(s) with composite sort keys defined on a model\n There are some very particular rules regarding which fields must be included in the update mutation input\n The field selection becomes more complex as the number of GSIs with composite sort keys grows\n\n To summarize: any time we update a field that is part of the composite sort key of a GSI, we must include:\n 1. all of the other fields in that composite sort key\n 2. all of the fields from any other composite sort key that intersect with the fields from 1.\n\n E.g.,\n Model @model\n @key(name: 'key1' fields: ['hk', 'a', 'b', 'c'])\n @key(name: 'key2' fields: ['hk', 'a', 'b', 'd'])\n @key(name: 'key3' fields: ['hk', 'x', 'y', 'z'])\n\n Model.a is updated => include ['a', 'b', 'c', 'd']\n Model.c is updated => include ['a', 'b', 'c', 'd']\n Model.d is updated => include ['a', 'b', 'c', 'd']\n Model.x is updated => include ['x', 'y', 'z']\n\n This function accepts a model's attributes and returns grouped sets of composite key fields\n Using our example Model above, the function will return:\n [\n Set('a', 'b', 'c', 'd'),\n Set('x', 'y', 'z'),\n ]\n\n This gives us the opportunity to correctly include the required fields for composite keys\n When crafting the mutation input in Storage.getUpdateMutationInput\n\n See 'processCompositeKeys' test in util.test.ts for more examples\n*/\nexport var processCompositeKeys = function (attributes) {\n var extractCompositeSortKey = function (_c) {\n var \n // ignore the HK (fields[0]) we only need to include the composite sort key fields[1...n]\n _d = __read(_c.properties.fields), sortKeyFields = _d.slice(1);\n return sortKeyFields;\n };\n var compositeKeyFields = attributes\n .filter(isModelAttributeCompositeKey)\n .map(extractCompositeSortKey);\n /*\n if 2 sets of fields have any intersecting fields => combine them into 1 union set\n e.g., ['a', 'b', 'c'] and ['a', 'b', 'd'] => ['a', 'b', 'c', 'd']\n */\n var combineIntersecting = function (fields) {\n return fields.reduce(function (combined, sortKeyFields) {\n var sortKeyFieldsSet = new Set(sortKeyFields);\n if (combined.length === 0) {\n combined.push(sortKeyFieldsSet);\n return combined;\n }\n // does the current set share values with another set we've already added to `combined`?\n var intersectingSetIdx = combined.findIndex(function (existingSet) {\n return __spread(existingSet).some(function (f) { return sortKeyFieldsSet.has(f); });\n });\n if (intersectingSetIdx > -1) {\n var union = new Set(__spread(combined[intersectingSetIdx], sortKeyFieldsSet));\n // combine the current set with the intersecting set we found above\n combined[intersectingSetIdx] = union;\n }\n else {\n // none of the sets in `combined` have intersecting values with the current set\n combined.push(sortKeyFieldsSet);\n }\n return combined;\n }, []);\n };\n var initial = combineIntersecting(compositeKeyFields);\n // a single pass pay not be enough to correctly combine all the fields\n // call the function once more to get a final merged list of sets\n var combined = combineIntersecting(initial);\n return combined;\n};\nexport var extractKeyIfExists = function (modelDefinition) {\n var _c;\n var keyAttribute = (_c = modelDefinition === null || modelDefinition === void 0 ? void 0 : modelDefinition.attributes) === null || _c === void 0 ? void 0 : _c.find(isModelAttributeKey);\n return keyAttribute;\n};\nexport var extractPrimaryKeyFieldNames = function (modelDefinition) {\n var keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields;\n }\n return [ID];\n};\nexport var extractPrimaryKeyValues = function (model, keyFields) {\n return keyFields.map(function (key) { return model[key]; });\n};\nexport var extractPrimaryKeysAndValues = function (model, keyFields) {\n var primaryKeysAndValues = {};\n keyFields.forEach(function (key) { return (primaryKeysAndValues[key] = model[key]); });\n return primaryKeysAndValues;\n};\n// IdentifierFields\n// Default behavior without explicit @primaryKey defined\nexport var isIdManaged = function (modelDefinition) {\n var keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return false;\n }\n return true;\n};\n// IdentifierFields\n// @primaryKey with explicit `id` in the PK. Single key or composite\nexport var isIdOptionallyManaged = function (modelDefinition) {\n var keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields[0] === ID;\n }\n return false;\n};\nexport var establishRelationAndKeys = function (namespace) {\n var relationship = {};\n var keys = {};\n Object.keys(namespace.models).forEach(function (mKey) {\n var e_6, _c;\n relationship[mKey] = { indexes: [], relationTypes: [] };\n keys[mKey] = {};\n var model = namespace.models[mKey];\n Object.keys(model.fields).forEach(function (attr) {\n var fieldAttribute = model.fields[attr];\n if (typeof fieldAttribute.type === 'object' &&\n 'model' in fieldAttribute.type) {\n var connectionType = fieldAttribute.association.connectionType;\n relationship[mKey].relationTypes.push({\n fieldName: fieldAttribute.name,\n modelName: fieldAttribute.type.model,\n relationType: connectionType,\n targetName: fieldAttribute.association['targetName'],\n targetNames: fieldAttribute.association['targetNames'],\n associatedWith: fieldAttribute.association['associatedWith'],\n });\n if (connectionType === 'BELONGS_TO') {\n var targetNames = extractTargetNamesFromSrc(fieldAttribute.association);\n if (targetNames) {\n var idxName_1 = indexNameFromKeys(targetNames);\n var idxExists = relationship[mKey].indexes.find(function (_c) {\n var _d = __read(_c, 1), index = _d[0];\n return index === idxName_1;\n });\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName_1, targetNames]);\n }\n }\n }\n }\n });\n if (model.attributes) {\n keys[mKey].compositeKeys = processCompositeKeys(model.attributes);\n var _loop_1 = function (attribute) {\n if (!isModelAttributeKey(attribute)) {\n return \"continue\";\n }\n var fields = attribute.properties.fields;\n if (isModelAttributePrimaryKey(attribute)) {\n keys[mKey].primaryKey = fields;\n return \"continue\";\n }\n // create indexes for all other keys\n var idxName = indexNameFromKeys(fields);\n var idxExists = relationship[mKey].indexes.find(function (_c) {\n var _d = __read(_c, 1), index = _d[0];\n return index === idxName;\n });\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName, fields]);\n }\n };\n try {\n for (var _d = __values(model.attributes), _e = _d.next(); !_e.done; _e = _d.next()) {\n var attribute = _e.value;\n _loop_1(attribute);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_c = _d.return)) _c.call(_d);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n // set 'id' as the PK for models without a custom PK explicitly defined\n if (!keys[mKey].primaryKey) {\n keys[mKey].primaryKey = [ID];\n }\n // create primary index\n relationship[mKey].indexes.push([\n 'byPk',\n keys[mKey].primaryKey,\n { unique: true },\n ]);\n });\n return [relationship, keys];\n};\nexport var getIndex = function (rel, src) {\n var indexName;\n rel.some(function (relItem) {\n if (relItem.modelName === src) {\n var targetNames = extractTargetNamesFromSrc(relItem);\n indexName = targetNames && indexNameFromKeys(targetNames);\n return true;\n }\n });\n return indexName;\n};\nexport var getIndexFromAssociation = function (indexes, src) {\n var indexName;\n if (Array.isArray(src)) {\n indexName = indexNameFromKeys(src);\n }\n else {\n indexName = src;\n }\n var associationIndex = indexes.find(function (_c) {\n var _d = __read(_c, 1), idxName = _d[0];\n return idxName === indexName;\n });\n return associationIndex && associationIndex[0];\n};\n/**\n * Backwards-compatability for schema generated prior to custom primary key support:\nthe single field `targetName` has been replaced with an array of `targetNames`.\n`targetName` and `targetNames` are exclusive (will never exist on the same schema)\n * @param src {RelationType | ModelAssociation | undefined}\n * @returns array of targetNames, or `undefined`\n */\nexport var extractTargetNamesFromSrc = function (src) {\n var targetName = src === null || src === void 0 ? void 0 : src.targetName;\n var targetNames = src === null || src === void 0 ? void 0 : src.targetNames;\n if (Array.isArray(targetNames)) {\n return targetNames;\n }\n else if (typeof targetName === 'string') {\n return [targetName];\n }\n else {\n return undefined;\n }\n};\n// Generates spinal-cased index name from an array of key field names\n// E.g. for keys `[id, title]` => 'id-title'\nexport var indexNameFromKeys = function (keys) {\n return keys.reduce(function (prev, cur, idx) {\n if (idx === 0) {\n return cur;\n }\n return \"\" + prev + IDENTIFIER_KEY_SEPARATOR + cur;\n }, '');\n};\nexport var keysEqual = function (keysA, keysB) {\n if (keysA.length !== keysB.length) {\n return false;\n }\n return keysA.every(function (key, idx) { return key === keysB[idx]; });\n};\n// Returns primary keys for a model\nexport var getIndexKeys = function (namespace, modelName) {\n var _c, _d;\n var keyPath = (_d = (_c = namespace === null || namespace === void 0 ? void 0 : namespace.keys) === null || _c === void 0 ? void 0 : _c[modelName]) === null || _d === void 0 ? void 0 : _d.primaryKey;\n if (keyPath) {\n return keyPath;\n }\n return [ID];\n};\n//#endregion\n/**\n * Determine what the managed timestamp field names are for the given model definition\n * and return the mapping.\n *\n * All timestamp fields are included in the mapping, regardless of whether the final field\n * names are the defaults or customized in the `@model` directive.\n *\n * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps\n *\n * @param definition modelDefinition to inspect.\n * @returns An object mapping `createdAt` and `updatedAt` to their field names.\n */\nexport var getTimestampFields = function (definition) {\n var _c, _d;\n var modelAttributes = (_c = definition.attributes) === null || _c === void 0 ? void 0 : _c.find(function (attr) { return attr.type === 'model'; });\n var timestampFieldsMap = (_d = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _d === void 0 ? void 0 : _d.timestamps;\n var defaultFields = {\n createdAt: 'createdAt',\n updatedAt: 'updatedAt',\n };\n var customFields = timestampFieldsMap || {};\n return __assign(__assign({}, defaultFields), customFields);\n};\n//# sourceMappingURL=util.js.map","var ModelSortPredicateCreator = /** @class */ (function () {\n function ModelSortPredicateCreator() {\n }\n ModelSortPredicateCreator.createPredicateBuilder = function (modelDefinition) {\n var modelName = modelDefinition.name;\n var fieldNames = new Set(Object.keys(modelDefinition.fields));\n var handler;\n var predicate = new Proxy({}, (handler = {\n get: function (_target, propertyKey, receiver) {\n var field = propertyKey;\n if (!fieldNames.has(field)) {\n throw new Error(\"Invalid field for model. field: \" + field + \", model: \" + modelName);\n }\n var result = function (sortDirection) {\n var _a;\n (_a = ModelSortPredicateCreator.sortPredicateGroupsMap\n .get(receiver)) === null || _a === void 0 ? void 0 : _a.push({ field: field, sortDirection: sortDirection });\n return receiver;\n };\n return result;\n },\n }));\n ModelSortPredicateCreator.sortPredicateGroupsMap.set(predicate, []);\n return predicate;\n };\n ModelSortPredicateCreator.isValidPredicate = function (predicate) {\n return ModelSortPredicateCreator.sortPredicateGroupsMap.has(predicate);\n };\n ModelSortPredicateCreator.getPredicates = function (predicate, throwOnInvalid) {\n if (throwOnInvalid === void 0) { throwOnInvalid = true; }\n if (throwOnInvalid &&\n !ModelSortPredicateCreator.isValidPredicate(predicate)) {\n throw new Error('The predicate is not valid');\n }\n var predicateGroup = ModelSortPredicateCreator.sortPredicateGroupsMap.get(predicate);\n if (predicateGroup) {\n return predicateGroup;\n }\n else {\n throw new Error('Predicate group not found');\n }\n };\n // transforms cb-style predicate into Proxy\n ModelSortPredicateCreator.createFromExisting = function (modelDefinition, existing) {\n if (!existing || !modelDefinition) {\n return undefined;\n }\n return existing(ModelSortPredicateCreator.createPredicateBuilder(modelDefinition));\n };\n ModelSortPredicateCreator.sortPredicateGroupsMap = new WeakMap();\n return ModelSortPredicateCreator;\n}());\nexport { ModelSortPredicateCreator };\n//# sourceMappingURL=sort.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, extractPrimaryKeyFieldNames, } from './util';\nexport function isSchemaModel(obj) {\n return obj && obj.pluralName !== undefined;\n}\nexport function isSchemaModelWithAttributes(m) {\n return isSchemaModel(m) && m.attributes !== undefined;\n}\nexport function isAssociatedWith(obj) {\n return obj && obj.associatedWith;\n}\nexport function isTargetNameAssociation(obj) {\n return (obj === null || obj === void 0 ? void 0 : obj.targetName) || (obj === null || obj === void 0 ? void 0 : obj.targetNames);\n}\nexport function isFieldAssociation(obj, fieldName) {\n var _a, _b;\n return (_b = (_a = obj === null || obj === void 0 ? void 0 : obj.fields[fieldName]) === null || _a === void 0 ? void 0 : _a.association) === null || _b === void 0 ? void 0 : _b.connectionType;\n}\nexport function isModelAttributeAuth(attr) {\n return (attr.type === 'auth' &&\n attr.properties &&\n attr.properties.rules &&\n attr.properties.rules.length > 0);\n}\nexport function isModelAttributeKey(attr) {\n return (attr.type === 'key' &&\n attr.properties &&\n attr.properties.fields &&\n attr.properties.fields.length > 0);\n}\nexport function isModelAttributePrimaryKey(attr) {\n return isModelAttributeKey(attr) && attr.properties.name === undefined;\n}\nexport function isModelAttributeCompositeKey(attr) {\n return (isModelAttributeKey(attr) &&\n attr.properties.name !== undefined &&\n attr.properties.fields.length > 2);\n}\nexport var ModelAttributeAuthAllow;\n(function (ModelAttributeAuthAllow) {\n ModelAttributeAuthAllow[\"CUSTOM\"] = \"custom\";\n ModelAttributeAuthAllow[\"OWNER\"] = \"owner\";\n ModelAttributeAuthAllow[\"GROUPS\"] = \"groups\";\n ModelAttributeAuthAllow[\"PRIVATE\"] = \"private\";\n ModelAttributeAuthAllow[\"PUBLIC\"] = \"public\";\n})(ModelAttributeAuthAllow || (ModelAttributeAuthAllow = {}));\nexport var ModelAttributeAuthProvider;\n(function (ModelAttributeAuthProvider) {\n ModelAttributeAuthProvider[\"FUNCTION\"] = \"function\";\n ModelAttributeAuthProvider[\"USER_POOLS\"] = \"userPools\";\n ModelAttributeAuthProvider[\"OIDC\"] = \"oidc\";\n ModelAttributeAuthProvider[\"IAM\"] = \"iam\";\n ModelAttributeAuthProvider[\"API_KEY\"] = \"apiKey\";\n})(ModelAttributeAuthProvider || (ModelAttributeAuthProvider = {}));\nexport var GraphQLScalarType;\n(function (GraphQLScalarType) {\n GraphQLScalarType[GraphQLScalarType[\"ID\"] = 0] = \"ID\";\n GraphQLScalarType[GraphQLScalarType[\"String\"] = 1] = \"String\";\n GraphQLScalarType[GraphQLScalarType[\"Int\"] = 2] = \"Int\";\n GraphQLScalarType[GraphQLScalarType[\"Float\"] = 3] = \"Float\";\n GraphQLScalarType[GraphQLScalarType[\"Boolean\"] = 4] = \"Boolean\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDate\"] = 5] = \"AWSDate\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTime\"] = 6] = \"AWSTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDateTime\"] = 7] = \"AWSDateTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTimestamp\"] = 8] = \"AWSTimestamp\";\n GraphQLScalarType[GraphQLScalarType[\"AWSEmail\"] = 9] = \"AWSEmail\";\n GraphQLScalarType[GraphQLScalarType[\"AWSJSON\"] = 10] = \"AWSJSON\";\n GraphQLScalarType[GraphQLScalarType[\"AWSURL\"] = 11] = \"AWSURL\";\n GraphQLScalarType[GraphQLScalarType[\"AWSPhone\"] = 12] = \"AWSPhone\";\n GraphQLScalarType[GraphQLScalarType[\"AWSIPAddress\"] = 13] = \"AWSIPAddress\";\n})(GraphQLScalarType || (GraphQLScalarType = {}));\n(function (GraphQLScalarType) {\n function getJSType(scalar) {\n switch (scalar) {\n case 'Boolean':\n return 'boolean';\n case 'ID':\n case 'String':\n case 'AWSDate':\n case 'AWSTime':\n case 'AWSDateTime':\n case 'AWSEmail':\n case 'AWSURL':\n case 'AWSPhone':\n case 'AWSIPAddress':\n return 'string';\n case 'Int':\n case 'Float':\n case 'AWSTimestamp':\n return 'number';\n case 'AWSJSON':\n return 'object';\n default:\n throw new Error('Invalid scalar type');\n }\n }\n GraphQLScalarType.getJSType = getJSType;\n function getValidationFunction(scalar) {\n switch (scalar) {\n case 'AWSDate':\n return isAWSDate;\n case 'AWSTime':\n return isAWSTime;\n case 'AWSDateTime':\n return isAWSDateTime;\n case 'AWSTimestamp':\n return isAWSTimestamp;\n case 'AWSEmail':\n return isAWSEmail;\n case 'AWSJSON':\n return isAWSJSON;\n case 'AWSURL':\n return isAWSURL;\n case 'AWSPhone':\n return isAWSPhone;\n case 'AWSIPAddress':\n return isAWSIPAddress;\n default:\n return undefined;\n }\n }\n GraphQLScalarType.getValidationFunction = getValidationFunction;\n})(GraphQLScalarType || (GraphQLScalarType = {}));\nexport function isGraphQLScalarType(obj) {\n return obj && GraphQLScalarType[obj] !== undefined;\n}\nexport function isModelFieldType(obj) {\n var modelField = 'model';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isNonModelFieldType(obj) {\n var typeField = 'nonModel';\n if (obj && obj[typeField])\n return true;\n return false;\n}\nexport function isEnumFieldType(obj) {\n var modelField = 'enum';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isIdentifierObject(obj, modelDefinition) {\n var keys = extractPrimaryKeyFieldNames(modelDefinition);\n return (typeof obj === 'object' && obj && keys.every(function (k) { return obj[k] !== undefined; }));\n}\n//#endregion\n//#region Subscription messages\nexport var OpType;\n(function (OpType) {\n OpType[\"INSERT\"] = \"INSERT\";\n OpType[\"UPDATE\"] = \"UPDATE\";\n OpType[\"DELETE\"] = \"DELETE\";\n})(OpType || (OpType = {}));\nexport function isPredicateObj(obj) {\n return obj && obj.field !== undefined;\n}\nexport function isPredicateGroup(obj) {\n return obj && obj.type !== undefined;\n}\nexport var QueryOne;\n(function (QueryOne) {\n QueryOne[QueryOne[\"FIRST\"] = 0] = \"FIRST\";\n QueryOne[QueryOne[\"LAST\"] = 1] = \"LAST\";\n})(QueryOne || (QueryOne = {}));\nexport var SortDirection;\n(function (SortDirection) {\n SortDirection[\"ASCENDING\"] = \"ASCENDING\";\n SortDirection[\"DESCENDING\"] = \"DESCENDING\";\n})(SortDirection || (SortDirection = {}));\nexport var AuthModeStrategyType;\n(function (AuthModeStrategyType) {\n AuthModeStrategyType[\"DEFAULT\"] = \"DEFAULT\";\n AuthModeStrategyType[\"MULTI_AUTH\"] = \"MULTI_AUTH\";\n})(AuthModeStrategyType || (AuthModeStrategyType = {}));\nexport var ModelOperation;\n(function (ModelOperation) {\n ModelOperation[\"CREATE\"] = \"CREATE\";\n ModelOperation[\"READ\"] = \"READ\";\n ModelOperation[\"UPDATE\"] = \"UPDATE\";\n ModelOperation[\"DELETE\"] = \"DELETE\";\n})(ModelOperation || (ModelOperation = {}));\nexport function syncExpression(modelConstructor, conditionProducer) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, {\n modelConstructor: modelConstructor,\n conditionProducer: conditionProducer,\n }];\n });\n });\n}\nexport var ProcessName;\n(function (ProcessName) {\n ProcessName[\"sync\"] = \"sync\";\n ProcessName[\"mutate\"] = \"mutate\";\n ProcessName[\"subscribe\"] = \"subscribe\";\n})(ProcessName || (ProcessName = {}));\nexport var DISCARD = Symbol('DISCARD');\nexport var LimitTimerRaceResolvedValues;\n(function (LimitTimerRaceResolvedValues) {\n LimitTimerRaceResolvedValues[\"LIMIT\"] = \"LIMIT\";\n LimitTimerRaceResolvedValues[\"TIMER\"] = \"TIMER\";\n})(LimitTimerRaceResolvedValues || (LimitTimerRaceResolvedValues = {}));\n/**\n * A pointer used by DataStore internally to lookup predicate details\n * that should not be exposed on public customer interfaces.\n */\nvar PredicateInternalsKey = /** @class */ (function () {\n function PredicateInternalsKey() {\n this.__isPredicateInternalsKeySentinel = true;\n }\n return PredicateInternalsKey;\n}());\nexport { PredicateInternalsKey };\n// #endregion\n//# sourceMappingURL=types.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * @private For internal Amplify use.\n *\n * Creates a new scope for promises, observables, and other types of work or\n * processes that may be running in the background. This manager provides\n * an singular entrypoint to request termination and await completion.\n *\n * As work completes on its own prior to close, the manager removes them\n * from the registry to avoid holding references to completed jobs.\n */\nvar BackgroundProcessManager = /** @class */ (function () {\n /**\n * Creates a new manager for promises, observables, and other types\n * of work that may be running in the background. This manager provides\n * a centralized mechanism to request termination and await completion.\n */\n function BackgroundProcessManager() {\n /**\n * A string indicating whether the manager is accepting new work (\"Open\"),\n * waiting for work to complete (\"Closing\"), or fully done with all\n * submitted work and *not* accepting new jobs (\"Closed\").\n */\n this._state = BackgroundProcessManagerState.Open;\n /**\n * The list of outstanding jobs we'll need to wait for upon `close()`\n */\n this.jobs = new Set();\n }\n BackgroundProcessManager.prototype.add = function (jobOrDescription, optionalDescription) {\n var job;\n var description;\n if (typeof jobOrDescription === 'string') {\n job = undefined;\n description = jobOrDescription;\n }\n else {\n job = jobOrDescription;\n description = optionalDescription;\n }\n var error = this.closedFailure(description);\n if (error)\n return error;\n if (job === undefined) {\n return this.addHook(description);\n }\n else if (typeof job === 'function') {\n return this.addFunction(job, description);\n }\n else if (job instanceof BackgroundProcessManager) {\n return this.addManager(job, description);\n }\n else {\n throw new Error('If `job` is provided, it must be an Observable, Function, or BackgroundProcessManager.');\n }\n };\n /**\n * Adds a **cleaner** function that doesn't immediately get executed.\n * Instead, the caller gets a **terminate** function back. The *cleaner* is\n * invoked only once the mananger *closes* or the returned **terminate**\n * function is called.\n *\n * @param clean The cleanup function.\n * @param description Optional description to help identify pending jobs.\n * @returns A terminate function.\n */\n BackgroundProcessManager.prototype.addCleaner = function (clean, description) {\n var _this = this;\n var _a = this.addHook(description), resolve = _a.resolve, onTerminate = _a.onTerminate;\n var proxy = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, clean()];\n case 1:\n _a.sent();\n resolve();\n return [2 /*return*/];\n }\n });\n }); };\n onTerminate.then(proxy);\n return proxy;\n };\n BackgroundProcessManager.prototype.addFunction = function (job, description) {\n // the function we call when we want to try to terminate this job.\n var terminate;\n // the promise the job can opt into listening to for termination.\n var onTerminate = new Promise(function (resolve) {\n terminate = resolve;\n });\n // finally! start the job.\n var jobResult = job(onTerminate);\n // depending on what the job gives back, register the result\n // so we can monitor for completion.\n if (typeof (jobResult === null || jobResult === void 0 ? void 0 : jobResult.then) === 'function') {\n this.registerPromise(jobResult, terminate, description);\n }\n // At the end of the day, or you know, method call, it doesn't matter\n // what the return value is at all; we just pass it through to the\n // caller.\n return jobResult;\n };\n BackgroundProcessManager.prototype.addManager = function (manager, description) {\n var _this = this;\n this.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, manager.close()];\n case 1: return [2 /*return*/, _a.sent()];\n }\n }); }); }, description);\n };\n /**\n * Creates and registers a fabricated job for processes that need to operate\n * with callbacks/hooks. The returned `resolve` and `reject`\n * functions can be used to signal the job is done successfully or not.\n * The returned `onTerminate` is a promise that will resolve when the\n * manager is requesting the termination of the job.\n *\n * @param description Optional description to help identify pending jobs.\n * @returns `{ resolve, reject, onTerminate }`\n */\n BackgroundProcessManager.prototype.addHook = function (description) {\n // the resolve/reject functions we'll provide to the caller to signal\n // the state of the job.\n var resolve;\n var reject;\n // the underlying promise we'll use to manage it, pretty much like\n // any other promise.\n var promise = new Promise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // the function we call when we want to try to terminate this job.\n var terminate;\n // the promise the job can opt into listening to for termination.\n var onTerminate = new Promise(function (resolveTerminate) {\n terminate = resolveTerminate;\n });\n this.registerPromise(promise, terminate, description);\n return {\n resolve: resolve,\n reject: reject,\n onTerminate: onTerminate,\n };\n };\n /**\n * Adds a Promise based job to the list of jobs for monitoring and listens\n * for either a success or failure, upon which the job is considered \"done\"\n * and removed from the registry.\n *\n * @param promise A promise that is on its way to being returned to a\n * caller, which needs to be tracked as a background job.\n * @param terminate The termination function to register, which can be\n * invoked to request the job stop.\n * @param description Optional description to help identify pending jobs.\n */\n BackgroundProcessManager.prototype.registerPromise = function (promise, terminate, description) {\n var _this = this;\n var jobEntry = { promise: promise, terminate: terminate, description: description };\n this.jobs.add(jobEntry);\n // in all of my testing, it is safe to multi-subscribe to a promise.\n // so, rather than create another layer of promising, we're just going\n // to hook into the promise we already have, and when it's done\n // (successfully or not), we no longer need to wait for it upon close.\n //\n // sorry this is a bit hand-wavy:\n //\n // i believe we use `.then` and `.catch` instead of `.finally` because\n // `.finally` is invoked in a different order in the sequence, and this\n // breaks assumptions throughout and causes failures.\n promise\n .then(function () {\n _this.jobs.delete(jobEntry);\n })\n .catch(function () {\n _this.jobs.delete(jobEntry);\n });\n };\n Object.defineProperty(BackgroundProcessManager.prototype, \"length\", {\n /**\n * The number of jobs being waited on.\n *\n * We don't use this for anything. It's just informational for the caller,\n * and can be used in logging and testing.\n *\n * @returns the number of jobs.\n */\n get: function () {\n return this.jobs.size;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BackgroundProcessManager.prototype, \"state\", {\n /**\n * The execution state of the manager. One of:\n *\n * 1. \"Open\" -> Accepting new jobs\n * 1. \"Closing\" -> Not accepting new work. Waiting for jobs to complete.\n * 1. \"Closed\" -> Not accepting new work. All submitted jobs are complete.\n */\n get: function () {\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BackgroundProcessManager.prototype, \"pending\", {\n /**\n * The registered `description` of all still-pending jobs.\n *\n * @returns descriptions as an array.\n */\n get: function () {\n return Array.from(this.jobs).map(function (job) { return job.description; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BackgroundProcessManager.prototype, \"isOpen\", {\n /**\n * Whether the manager is accepting new jobs.\n */\n get: function () {\n return this._state === BackgroundProcessManagerState.Open;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BackgroundProcessManager.prototype, \"isClosing\", {\n /**\n * Whether the manager is rejecting new work, but still waiting for\n * submitted work to complete.\n */\n get: function () {\n return this._state === BackgroundProcessManagerState.Closing;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BackgroundProcessManager.prototype, \"isClosed\", {\n /**\n * Whether the manager is rejecting work and done waiting for submitted\n * work to complete.\n */\n get: function () {\n return this._state === BackgroundProcessManagerState.Closed;\n },\n enumerable: false,\n configurable: true\n });\n BackgroundProcessManager.prototype.closedFailure = function (description) {\n if (!this.isOpen) {\n return Promise.reject(new BackgroundManagerNotOpenError([\n \"The manager is \".concat(this.state, \".\"),\n \"You tried to add \\\"\".concat(description, \"\\\".\"),\n \"Pending jobs: [\\n\".concat(this.pending\n .map(function (t) { return ' ' + t; })\n .join(',\\n'), \"\\n]\"),\n ].join('\\n')));\n }\n };\n /**\n * Signals jobs to stop (for those that accept interruptions) and waits\n * for confirmation that jobs have stopped.\n *\n * This immediately puts the manager into a closing state and just begins\n * to reject new work. After all work in the manager is complete, the\n * manager goes into a `Completed` state and `close()` returns.\n *\n * This call is idempotent.\n *\n * If the manager is already closing or closed, `finalCleaup` is not executed.\n *\n * @param onClosed\n * @returns The settled results of each still-running job's promise. If the\n * manager is already closed, this will contain the results as of when the\n * manager's `close()` was called in an `Open` state.\n */\n BackgroundProcessManager.prototype.close = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, job;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this.isOpen) return [3 /*break*/, 2];\n this._state = BackgroundProcessManagerState.Closing;\n try {\n for (_a = __values(Array.from(this.jobs)), _b = _a.next(); !_b.done; _b = _a.next()) {\n job = _b.value;\n try {\n job.terminate();\n }\n catch (error) {\n // Due to potential races with a job's natural completion, it's\n // reasonable to expect the termination call to fail. Hence,\n // not logging as an error.\n console.warn(\"Failed to send termination signal to job. Error: \".concat(error.message), job);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Use `allSettled()` because we want to wait for all to finish. We do\n // not want to stop waiting if there is a failure.\n this._closingPromise = Promise.allSettled(Array.from(this.jobs).map(function (j) { return j.promise; }));\n return [4 /*yield*/, this._closingPromise];\n case 1:\n _d.sent();\n this._state = BackgroundProcessManagerState.Closed;\n _d.label = 2;\n case 2: return [2 /*return*/, this._closingPromise];\n }\n });\n });\n };\n /**\n * Signals the manager to start accepting work (again) and returns once\n * the manager is ready to do so.\n *\n * If the state is already `Open`, this call is a no-op.\n *\n * If the state is `Closed`, this call simply updates state and returns.\n *\n * If the state is `Closing`, this call waits for completion before it\n * updates the state and returns.\n */\n BackgroundProcessManager.prototype.open = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isClosing) return [3 /*break*/, 2];\n return [4 /*yield*/, this.close()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this._state = BackgroundProcessManagerState.Open;\n return [2 /*return*/];\n }\n });\n });\n };\n return BackgroundProcessManager;\n}());\nexport { BackgroundProcessManager };\n/**\n *\n */\nvar BackgroundManagerNotOpenError = /** @class */ (function (_super) {\n __extends(BackgroundManagerNotOpenError, _super);\n function BackgroundManagerNotOpenError(message) {\n return _super.call(this, \"BackgroundManagerNotOpenError: \".concat(message)) || this;\n }\n return BackgroundManagerNotOpenError;\n}(Error));\nexport { BackgroundManagerNotOpenError };\n/**\n * All possible states a `BackgroundProcessManager` instance can be in.\n */\nexport var BackgroundProcessManagerState;\n(function (BackgroundProcessManagerState) {\n /**\n * Accepting new jobs.\n */\n BackgroundProcessManagerState[\"Open\"] = \"Open\";\n /**\n * Not accepting new jobs. Waiting for submitted jobs to complete.\n */\n BackgroundProcessManagerState[\"Closing\"] = \"Closing\";\n /**\n * Not accepting new jobs. All submitted jobs are complete.\n */\n BackgroundProcessManagerState[\"Closed\"] = \"Closed\";\n})(BackgroundProcessManagerState || (BackgroundProcessManagerState = {}));\n","function n(n){for(var t=arguments.length,r=Array(t>1?t-1:0),e=1;e3?t.i-4:t.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,t){return 2===o(n)?n.has(t):Object.prototype.hasOwnProperty.call(n,t)}function a(n,t){return 2===o(n)?n.get(t):n[t]}function f(n,t,r){var e=o(n);2===e?n.set(t,r):3===e?(n.delete(t),n.add(r)):n[t]=r}function c(n,t){return n===t?0!==n||1/n==1/t:n!=n&&t!=t}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var t=tn(n);delete t[Q];for(var r=nn(t),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,t){return d(t,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(t){var r=rn[t];return r||n(18,t),r}function m(n,t){rn[n]||(rn[n]=t)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,t){t&&(b(\"Patches\"),n.u=[],n.s=[],n.v=t)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var t=n[Q];0===t.i||1===t.i?t.j():t.O=!0}function P(t,e){e._=e.p.length;var i=e.p[0],o=void 0!==t&&t!==i;return e.h.g||b(\"ES5\").S(e,t,o),o?(i[Q].P&&(O(e),n(4)),r(t)&&(t=M(e,t),e.l||x(e,t)),e.u&&b(\"Patches\").M(i[Q],t,e.u,e.s)):t=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),t!==H?t:void 0}function M(n,t,r){if(y(t))return t;var e=t[Q];if(!e)return i(t,(function(i,o){return A(n,e,t,i,o,r)}),!0),t;if(e.A!==n)return t;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(t,i){return A(n,e,o,t,i,r)})),x(n,o,!1),r&&n.u&&b(\"Patches\").R(e,r,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),t(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!t(v))return;e.m=!1}if(r(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,t,r){void 0===r&&(r=!1),n.h.F&&n.m&&d(t,r)}function z(n,t){var r=n[Q];return(r?p(r):n)[t]}function I(n,t){if(t in n)for(var r=Object.getPrototypeOf(n);r;){var e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=Object.getPrototypeOf(r)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,t,r){var e=s(t)?b(\"MapSet\").N(t,r):v(t)?b(\"MapSet\").T(t,r):n.g?function(n,t){var r=Array.isArray(n),e={i:r?1:0,A:t?t.A:_(),P:!1,I:!1,D:{},l:t,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;r&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(t,r):b(\"ES5\").J(t,r);return(r?r.A:_()).p.push(e),e}function D(e){return t(e)||n(22,e),function n(t){if(!r(t))return t;var e,u=t[Q],c=o(t);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(t,c),u.I=!1}else e=F(t,c);return i(e,(function(t,r){u&&a(u.t,t)===r||f(e,t,n(r))})),3===c?new Set(e):e}(e)}function F(n,t){switch(t){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function r(n,t){var r=s[n];return r?r.enumerable=t:s[n]=r={configurable:!0,enumerable:t,get:function(){var t=this[Q];return\"production\"!==process.env.NODE_ENV&&f(t),en.get(t,n)},set:function(t){var r=this[Q];\"production\"!==process.env.NODE_ENV&&f(r),en.set(r,n,t)}},r}function e(n){for(var t=n.length-1;t>=0;t--){var r=n[t][Q];if(!r.P)switch(r.i){case 5:a(r)&&k(r);break;case 4:o(r)&&k(r)}}}function o(n){for(var t=n.t,r=n.k,e=nn(r),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=t[o];if(void 0===a&&!u(t,o))return!0;var f=r[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!t[Q];return e.length!==nn(t).length+(v?0:1)}function a(n){var t=n.k;if(t.length!==n.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}function f(t){t.O&&n(3,JSON.stringify(p(t)))}var s={};m(\"ES5\",{J:function(n,t){var e=Array.isArray(n),i=function(n,t){if(n){for(var e=Array(t.length),i=0;i1?r-1:0),o=1;o1?r-1:0),o=1;o=0;e--){var i=r[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}var o=b(\"Patches\").$;return t(n)?o(n,r):this.produce(n,(function(n){return o(n,r.slice(e+1))}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,t as isDraft,r as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import { __awaiter, __generator, __read, __spread } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Auth } from '@aws-amplify/auth';\nimport { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';\nimport { ModelAttributeAuthProvider, ModelAttributeAuthAllow, } from '../types';\nfunction getProviderFromRule(rule) {\n // private with no provider means userPools\n if (rule.allow === 'private' && !rule.provider) {\n return ModelAttributeAuthProvider.USER_POOLS;\n }\n // public with no provider means apiKey\n if (rule.allow === 'public' && !rule.provider) {\n return ModelAttributeAuthProvider.API_KEY;\n }\n return rule.provider;\n}\nfunction sortAuthRulesWithPriority(rules) {\n var allowSortPriority = [\n ModelAttributeAuthAllow.CUSTOM,\n ModelAttributeAuthAllow.OWNER,\n ModelAttributeAuthAllow.GROUPS,\n ModelAttributeAuthAllow.PRIVATE,\n ModelAttributeAuthAllow.PUBLIC,\n ];\n var providerSortPriority = [\n ModelAttributeAuthProvider.FUNCTION,\n ModelAttributeAuthProvider.USER_POOLS,\n ModelAttributeAuthProvider.OIDC,\n ModelAttributeAuthProvider.IAM,\n ModelAttributeAuthProvider.API_KEY,\n ];\n return __spread(rules).sort(function (a, b) {\n if (a.allow === b.allow) {\n return (providerSortPriority.indexOf(getProviderFromRule(a)) -\n providerSortPriority.indexOf(getProviderFromRule(b)));\n }\n return (allowSortPriority.indexOf(a.allow) - allowSortPriority.indexOf(b.allow));\n });\n}\nfunction getAuthRules(_a) {\n var rules = _a.rules, currentUser = _a.currentUser;\n // Using Set to ensure uniqueness\n var authModes = new Set();\n rules.forEach(function (rule) {\n switch (rule.allow) {\n case ModelAttributeAuthAllow.CUSTOM:\n // custom with no provider -> function\n if (!rule.provider ||\n rule.provider === ModelAttributeAuthProvider.FUNCTION) {\n authModes.add(GRAPHQL_AUTH_MODE.AWS_LAMBDA);\n }\n break;\n case ModelAttributeAuthAllow.GROUPS:\n case ModelAttributeAuthAllow.OWNER: {\n // We shouldn't attempt User Pool or OIDC if there isn't an authenticated user\n if (currentUser) {\n if (rule.provider === ModelAttributeAuthProvider.USER_POOLS) {\n authModes.add(GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS);\n }\n else if (rule.provider === ModelAttributeAuthProvider.OIDC) {\n authModes.add(GRAPHQL_AUTH_MODE.OPENID_CONNECT);\n }\n }\n break;\n }\n case ModelAttributeAuthAllow.PRIVATE: {\n // We shouldn't attempt private if there isn't an authenticated user\n if (currentUser) {\n // private with no provider means userPools\n if (!rule.provider ||\n rule.provider === ModelAttributeAuthProvider.USER_POOLS) {\n authModes.add(GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS);\n }\n else if (rule.provider === ModelAttributeAuthProvider.IAM) {\n authModes.add(GRAPHQL_AUTH_MODE.AWS_IAM);\n }\n }\n break;\n }\n case ModelAttributeAuthAllow.PUBLIC: {\n if (rule.provider === ModelAttributeAuthProvider.IAM) {\n authModes.add(GRAPHQL_AUTH_MODE.AWS_IAM);\n }\n else if (!rule.provider ||\n rule.provider === ModelAttributeAuthProvider.API_KEY) {\n // public with no provider means apiKey\n authModes.add(GRAPHQL_AUTH_MODE.API_KEY);\n }\n break;\n }\n default:\n break;\n }\n });\n return Array.from(authModes);\n}\n/**\n * Returns an array of auth modes to try based on the schema, model, and\n * authenticated user (or lack thereof). Rules are sourced from `getAuthRules`\n * and returned in the order they ought to be attempted.\n *\n * @see sortAuthRulesWithPriority\n * @see getAuthRules\n *\n * @param param0 The `{schema, modelName}` to inspect.\n * @returns A sorted array of auth modes to attempt.\n */\nexport var multiAuthStrategy = function (amplifyContext) {\n return function (_a) {\n var schema = _a.schema, modelName = _a.modelName;\n return __awaiter(void 0, void 0, void 0, function () {\n var currentUser, e_1, attributes, authAttribute, sortedRules;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n amplifyContext.Auth = amplifyContext.Auth || Auth;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, amplifyContext.Auth.currentAuthenticatedUser()];\n case 2:\n currentUser = _c.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _c.sent();\n return [3 /*break*/, 4];\n case 4:\n attributes = schema.namespaces.user.models[modelName].attributes;\n if (attributes) {\n authAttribute = attributes.find(function (attr) { return attr.type === 'auth'; });\n if ((_b = authAttribute === null || authAttribute === void 0 ? void 0 : authAttribute.properties) === null || _b === void 0 ? void 0 : _b.rules) {\n sortedRules = sortAuthRulesWithPriority(authAttribute.properties.rules);\n return [2 /*return*/, getAuthRules({ currentUser: currentUser, rules: sortedRules })];\n }\n }\n return [2 /*return*/, []];\n }\n });\n });\n };\n};\n//# sourceMappingURL=multiAuthStrategy.js.map","// Default behavior is to use the primary auth mode for an API,\n// so we are returning an empty array so that DataStore will default\n// to using the primary auth mode.\nexport var defaultAuthStrategy = function () { return []; };\n//# sourceMappingURL=defaultAuthStrategy.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { extractPrimaryKeyFieldNames, extractPrimaryKeyValues } from '../util';\nexport { ModelSortPredicateCreator } from './sort';\nvar predicatesAllSet = new WeakSet();\nexport function isPredicatesAll(predicate) {\n return predicatesAllSet.has(predicate);\n}\n/**\n * The valid logical grouping keys for a predicate group.\n */\nvar groupKeys = new Set(['and', 'or', 'not']);\n/**\n * Determines whether an object is a GraphQL style predicate \"group\", which must be an\n * object containing a single \"group key\", which then contains the child condition(s).\n *\n * E.g.,\n *\n * ```\n * { and: [ ... ] }\n * { not: { ... } }\n * ```\n *\n * @param o The object to test.\n */\nvar isGroup = function (o) {\n var keys = __spread(Object.keys(o));\n return keys.length === 1 && groupKeys.has(keys[0]);\n};\n/**\n * Determines whether an object specifies no conditions and should match everything,\n * as would be the case with `Predicates.ALL`.\n *\n * @param o The object to test.\n */\nvar isEmpty = function (o) {\n return !Array.isArray(o) && Object.keys(o).length === 0;\n};\n/**\n * The valid comparison operators that can be used as keys in a predicate comparison object.\n */\nexport var comparisonKeys = new Set([\n 'eq',\n 'ne',\n 'gt',\n 'lt',\n 'ge',\n 'le',\n 'contains',\n 'notContains',\n 'beginsWith',\n 'between',\n]);\n/**\n * Determines whether an object is a GraphQL style predicate comparison node, which must\n * be an object containing a single \"comparison operator\" key, which then contains the\n * operand or operands to compare against.\n *\n * @param o The object to test.\n */\nvar isComparison = function (o) {\n var keys = __spread(Object.keys(o));\n return !Array.isArray(o) && keys.length === 1 && comparisonKeys.has(keys[0]);\n};\n/**\n * A light check to determine whether an object is a valid GraphQL Condition AST.\n *\n * @param o The object to test.\n */\nvar isValid = function (o) {\n if (Array.isArray(o)) {\n return o.every(function (v) { return isValid(v); });\n }\n else {\n return Object.keys(o).length <= 1;\n }\n};\n// This symbol is not used at runtime, only its type (unique symbol)\nexport var PredicateAll = Symbol('A predicate that matches all records');\nvar Predicates = /** @class */ (function () {\n function Predicates() {\n }\n Object.defineProperty(Predicates, \"ALL\", {\n get: function () {\n var predicate = (function (c) { return c; });\n predicatesAllSet.add(predicate);\n return predicate;\n },\n enumerable: true,\n configurable: true\n });\n return Predicates;\n}());\nexport { Predicates };\nvar ModelPredicateCreator = /** @class */ (function () {\n function ModelPredicateCreator() {\n }\n /**\n * Determines whether the given storage predicate (lookup key) is a predicate\n * key that DataStore recognizes.\n *\n * @param predicate The storage predicate (lookup key) to test.\n */\n ModelPredicateCreator.isValidPredicate = function (predicate) {\n return ModelPredicateCreator.predicateGroupsMap.has(predicate);\n };\n /**\n * Looks for the storage predicate AST that corresponds to a given storage\n * predicate key.\n *\n * The key must have been created internally by a DataStore utility\n * method, such as `ModelPredicate.createFromAST()`.\n *\n * @param predicate The predicate reference to look up.\n * @param throwOnInvalid Whether to throw an exception if the predicate\n * isn't a valid DataStore predicate.\n */\n ModelPredicateCreator.getPredicates = function (predicate, throwOnInvalid) {\n if (throwOnInvalid === void 0) { throwOnInvalid = true; }\n if (throwOnInvalid && !ModelPredicateCreator.isValidPredicate(predicate)) {\n throw new Error('The predicate is not valid');\n }\n return ModelPredicateCreator.predicateGroupsMap.get(predicate);\n };\n /**\n * using the PK values from the given `model` (which can be a partial of T\n * Creates a predicate that matches an instance described by `modelDefinition`\n * that contains only PK field values.)\n *\n * @param modelDefinition The model definition to create a predicate for.\n * @param model The model instance to extract value equalities from.\n */\n ModelPredicateCreator.createForPk = function (modelDefinition, model) {\n var keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n var keyValues = extractPrimaryKeyValues(model, keyFields);\n var predicate = this.createFromAST(modelDefinition, {\n and: keyFields.map(function (field, idx) {\n var _a;\n var operand = keyValues[idx];\n return _a = {}, _a[field] = { eq: operand }, _a;\n }),\n });\n return predicate;\n };\n /**\n * Searches a `Model` table for records matching the given equalities object.\n *\n * This only matches against fields given in the equalities object. No other\n * fields are tested by the predicate.\n *\n * @param modelDefinition The model we need a predicate for.\n * @param flatEqualities An object holding field equalities to search for.\n */\n ModelPredicateCreator.createFromFlatEqualities = function (modelDefinition, flatEqualities) {\n var ast = {\n and: Object.entries(flatEqualities).map(function (_a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (_b = {}, _b[k] = { eq: v }, _b);\n }),\n };\n return this.createFromAST(modelDefinition, ast);\n };\n /**\n * Accepts a GraphQL style filter predicate tree and transforms it into an\n * AST that can be used for a storage adapter predicate. Example input:\n *\n * ```js\n * {\n * \tand: [\n * \t\t{ name: { eq: \"Bob Jones\" } },\n * \t\t{ age: { between: [32, 64] } },\n * \t\t{ not: {\n * \t\t\tor: [\n * \t\t\t\t{ favoriteFood: { eq: 'pizza' } },\n * \t\t\t\t{ favoriteFood: { eq: 'tacos' } },\n * \t\t\t]\n * \t\t}}\n * \t]\n * }\n * ```\n *\n * @param gql GraphQL style filter node.\n */\n ModelPredicateCreator.transformGraphQLFilterNodeToPredicateAST = function (gql) {\n var _this = this;\n if (!isValid(gql)) {\n throw new Error('Invalid GraphQL Condition or subtree: ' + JSON.stringify(gql));\n }\n if (isEmpty(gql)) {\n return {\n type: 'and',\n predicates: [],\n };\n }\n else if (isGroup(gql)) {\n var groupkey = Object.keys(gql)[0];\n var children = this.transformGraphQLFilterNodeToPredicateAST(gql[groupkey]);\n return {\n type: groupkey,\n predicates: Array.isArray(children) ? children : [children],\n };\n }\n else if (isComparison(gql)) {\n var operatorKey = Object.keys(gql)[0];\n return {\n operator: operatorKey,\n operand: gql[operatorKey],\n };\n }\n else {\n if (Array.isArray(gql)) {\n return gql.map(function (o) { return _this.transformGraphQLFilterNodeToPredicateAST(o); });\n }\n else {\n var fieldKey = Object.keys(gql)[0];\n return __assign({ field: fieldKey }, this.transformGraphQLFilterNodeToPredicateAST(gql[fieldKey]));\n }\n }\n };\n /**\n * Accepts a GraphQL style filter predicate tree and transforms it into a predicate\n * that storage adapters understand. Example input:\n *\n * ```js\n * {\n * \tand: [\n * \t\t{ name: { eq: \"Bob Jones\" } },\n * \t\t{ age: { between: [32, 64] } },\n * \t\t{ not: {\n * \t\t\tor: [\n * \t\t\t\t{ favoriteFood: { eq: 'pizza' } },\n * \t\t\t\t{ favoriteFood: { eq: 'tacos' } },\n * \t\t\t]\n * \t\t}}\n * \t]\n * }\n * ```\n *\n * @param modelDefinition The model that the AST/predicate must be compatible with.\n * @param ast The graphQL style AST that should specify conditions for `modelDefinition`.\n */\n ModelPredicateCreator.createFromAST = function (modelDefinition, ast) {\n var key = {};\n ModelPredicateCreator.predicateGroupsMap.set(key, this.transformGraphQLFilterNodeToPredicateAST(ast));\n return key;\n };\n /**\n * Map of storage predicates (key objects) to storage predicate AST's.\n */\n ModelPredicateCreator.predicateGroupsMap = new WeakMap();\n return ModelPredicateCreator;\n}());\nexport { ModelPredicateCreator };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator, __read, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';\nimport { GraphQLAuthError } from '@aws-amplify/api';\nimport { Logger } from '@aws-amplify/core';\nimport { isEnumFieldType, isGraphQLScalarType, isPredicateObj, isSchemaModel, isSchemaModelWithAttributes, isTargetNameAssociation, isNonModelFieldType, OpType, ModelOperation, isPredicateGroup, } from '../types';\nimport { extractPrimaryKeyFieldNames, establishRelationAndKeys, IDENTIFIER_KEY_SEPARATOR, } from '../util';\nvar logger = new Logger('DataStore');\nvar GraphQLOperationType;\n(function (GraphQLOperationType) {\n GraphQLOperationType[\"LIST\"] = \"query\";\n GraphQLOperationType[\"CREATE\"] = \"mutation\";\n GraphQLOperationType[\"UPDATE\"] = \"mutation\";\n GraphQLOperationType[\"DELETE\"] = \"mutation\";\n GraphQLOperationType[\"GET\"] = \"query\";\n})(GraphQLOperationType || (GraphQLOperationType = {}));\nexport var TransformerMutationType;\n(function (TransformerMutationType) {\n TransformerMutationType[\"CREATE\"] = \"Create\";\n TransformerMutationType[\"UPDATE\"] = \"Update\";\n TransformerMutationType[\"DELETE\"] = \"Delete\";\n TransformerMutationType[\"GET\"] = \"Get\";\n})(TransformerMutationType || (TransformerMutationType = {}));\nvar dummyMetadata = {\n _version: undefined,\n _lastChangedAt: undefined,\n _deleted: undefined,\n};\nvar metadataFields = (Object.keys(dummyMetadata));\nexport function getMetadataFields() {\n return metadataFields;\n}\nexport function generateSelectionSet(namespace, modelDefinition) {\n var scalarFields = getScalarFields(modelDefinition);\n var nonModelFields = getNonModelFields(namespace, modelDefinition);\n var implicitOwnerField = getImplicitOwnerField(modelDefinition, scalarFields);\n var scalarAndMetadataFields = Object.values(scalarFields)\n .map(function (_a) {\n var name = _a.name;\n return name;\n })\n .concat(implicitOwnerField)\n .concat(nonModelFields);\n if (isSchemaModel(modelDefinition)) {\n scalarAndMetadataFields = scalarAndMetadataFields\n .concat(getMetadataFields())\n .concat(getConnectionFields(modelDefinition, namespace));\n }\n var result = scalarAndMetadataFields.join('\\n');\n return result;\n}\nfunction getImplicitOwnerField(modelDefinition, scalarFields) {\n var ownerFields = getOwnerFields(modelDefinition);\n if (!scalarFields.owner && ownerFields.includes('owner')) {\n return ['owner'];\n }\n return [];\n}\nfunction getOwnerFields(modelDefinition) {\n var ownerFields = [];\n if (isSchemaModelWithAttributes(modelDefinition)) {\n modelDefinition.attributes.forEach(function (attr) {\n if (attr.properties && attr.properties.rules) {\n var rule = attr.properties.rules.find(function (rule) { return rule.allow === 'owner'; });\n if (rule && rule.ownerField) {\n ownerFields.push(rule.ownerField);\n }\n }\n });\n }\n return ownerFields;\n}\nfunction getScalarFields(modelDefinition) {\n var fields = modelDefinition.fields;\n var result = Object.values(fields)\n .filter(function (field) {\n if (isGraphQLScalarType(field.type) || isEnumFieldType(field.type)) {\n return true;\n }\n return false;\n })\n .reduce(function (acc, field) {\n acc[field.name] = field;\n return acc;\n }, {});\n return result;\n}\n// Used for generating the selection set for queries and mutations\nfunction getConnectionFields(modelDefinition, namespace) {\n var result = [];\n Object.values(modelDefinition.fields)\n .filter(function (_a) {\n var association = _a.association;\n return association && Object.keys(association).length;\n })\n .forEach(function (_a) {\n var name = _a.name, association = _a.association;\n var connectionType = (association || {}).connectionType;\n switch (connectionType) {\n case 'HAS_ONE':\n case 'HAS_MANY':\n // Intentionally blank\n break;\n case 'BELONGS_TO':\n if (isTargetNameAssociation(association)) {\n // New codegen (CPK)\n if (association.targetNames && association.targetNames.length > 0) {\n // Need to retrieve relations in order to get connected model keys\n var _b = __read(establishRelationAndKeys(namespace), 1), relations = _b[0];\n var connectedModelName = modelDefinition.fields[name].type['model'];\n var byPkIndex = relations[connectedModelName].indexes.find(function (_a) {\n var _b = __read(_a, 1), name = _b[0];\n return name === 'byPk';\n });\n var keyFields = byPkIndex && byPkIndex[1];\n var keyFieldSelectionSet = keyFields === null || keyFields === void 0 ? void 0 : keyFields.join(' ');\n // We rely on `_deleted` when we process the sync query (e.g. in batchSave in the adapters)\n result.push(name + \" { \" + keyFieldSelectionSet + \" _deleted }\");\n }\n else {\n // backwards-compatability for schema generated prior to custom primary key support\n result.push(name + \" { id _deleted }\");\n }\n }\n break;\n default:\n throw new Error(\"Invalid connection type \" + connectionType);\n }\n });\n return result;\n}\nfunction getNonModelFields(namespace, modelDefinition) {\n var result = [];\n Object.values(modelDefinition.fields).forEach(function (_a) {\n var name = _a.name, type = _a.type;\n if (isNonModelFieldType(type)) {\n var typeDefinition = namespace.nonModels[type.nonModel];\n var scalarFields = Object.values(getScalarFields(typeDefinition)).map(function (_a) {\n var name = _a.name;\n return name;\n });\n var nested_1 = [];\n Object.values(typeDefinition.fields).forEach(function (field) {\n var type = field.type, name = field.name;\n if (isNonModelFieldType(type)) {\n var typeDefinition_1 = namespace.nonModels[type.nonModel];\n nested_1.push(name + \" { \" + generateSelectionSet(namespace, typeDefinition_1) + \" }\");\n }\n });\n result.push(name + \" { \" + scalarFields.join(' ') + \" \" + nested_1.join(' ') + \" }\");\n }\n });\n return result;\n}\nexport function getAuthorizationRules(modelDefinition) {\n // Searching for owner authorization on attributes\n var authConfig = []\n .concat(modelDefinition.attributes || [])\n .find(function (attr) { return attr && attr.type === 'auth'; });\n var _a = (authConfig || {}).properties, _b = (_a === void 0 ? {} : _a).rules, rules = _b === void 0 ? [] : _b;\n var resultRules = [];\n // Multiple rules can be declared for allow: owner\n rules.forEach(function (rule) {\n // setting defaults for backwards compatibility with old cli\n var _a = rule.identityClaim, identityClaim = _a === void 0 ? 'cognito:username' : _a, _b = rule.ownerField, ownerField = _b === void 0 ? 'owner' : _b, _c = rule.operations, operations = _c === void 0 ? ['create', 'update', 'delete', 'read'] : _c, _d = rule.provider, provider = _d === void 0 ? 'userPools' : _d, _e = rule.groupClaim, groupClaim = _e === void 0 ? 'cognito:groups' : _e, _f = rule.allow, authStrategy = _f === void 0 ? 'iam' : _f, _g = rule.groups, groups = _g === void 0 ? [] : _g, _h = rule.groupsField, groupsField = _h === void 0 ? '' : _h;\n var isReadAuthorized = operations.includes('read');\n var isOwnerAuth = authStrategy === 'owner';\n if (!isReadAuthorized && !isOwnerAuth) {\n return;\n }\n var authRule = {\n identityClaim: identityClaim,\n ownerField: ownerField,\n provider: provider,\n groupClaim: groupClaim,\n authStrategy: authStrategy,\n groups: groups,\n groupsField: groupsField,\n areSubscriptionsPublic: false,\n };\n if (isOwnerAuth) {\n // look for the subscription level override\n // only pay attention to the public level\n var modelConfig = []\n .concat(modelDefinition.attributes || [])\n .find(function (attr) { return attr && attr.type === 'model'; });\n // find the subscriptions level. ON is default\n var _j = (modelConfig || {}).properties, _k = (_j === void 0 ? {} : _j).subscriptions, _l = (_k === void 0 ? {} : _k).level, level = _l === void 0 ? 'on' : _l;\n // treat subscriptions as public for owner auth with unprotected reads\n // when `read` is omitted from `operations`\n authRule.areSubscriptionsPublic =\n !operations.includes('read') || level === 'public';\n }\n if (isOwnerAuth) {\n // owner rules has least priority\n resultRules.push(authRule);\n return;\n }\n resultRules.unshift(authRule);\n });\n return resultRules;\n}\nexport function buildSubscriptionGraphQLOperation(namespace, modelDefinition, transformerMutationType, isOwnerAuthorization, ownerField, filterArg) {\n if (filterArg === void 0) { filterArg = false; }\n var selectionSet = generateSelectionSet(namespace, modelDefinition);\n var typeName = modelDefinition.name;\n var opName = \"on\" + transformerMutationType + typeName;\n var docArgs = [];\n var opArgs = [];\n if (filterArg) {\n docArgs.push(\"$filter: ModelSubscription\" + typeName + \"FilterInput\");\n opArgs.push('filter: $filter');\n }\n if (isOwnerAuthorization) {\n docArgs.push(\"$\" + ownerField + \": String!\");\n opArgs.push(ownerField + \": $\" + ownerField);\n }\n var docStr = docArgs.length ? \"(\" + docArgs.join(',') + \")\" : '';\n var opStr = opArgs.length ? \"(\" + opArgs.join(',') + \")\" : '';\n return [\n transformerMutationType,\n opName,\n \"subscription operation\" + docStr + \"{\\n\\t\\t\\t\" + opName + opStr + \"{\\n\\t\\t\\t\\t\" + selectionSet + \"\\n\\t\\t\\t}\\n\\t\\t}\",\n ];\n}\nexport function buildGraphQLOperation(namespace, modelDefinition, graphQLOpType) {\n var selectionSet = generateSelectionSet(namespace, modelDefinition);\n var typeName = modelDefinition.name, pluralTypeName = modelDefinition.pluralName;\n var operation;\n var documentArgs;\n var operationArgs;\n var transformerMutationType;\n switch (graphQLOpType) {\n case 'LIST':\n operation = \"sync\" + pluralTypeName;\n documentArgs = \"($limit: Int, $nextToken: String, $lastSync: AWSTimestamp, $filter: Model\" + typeName + \"FilterInput)\";\n operationArgs =\n '(limit: $limit, nextToken: $nextToken, lastSync: $lastSync, filter: $filter)';\n selectionSet = \"items {\\n\\t\\t\\t\\t\\t\\t\\t\" + selectionSet + \"\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\tnextToken\\n\\t\\t\\t\\t\\t\\tstartedAt\";\n break;\n case 'CREATE':\n operation = \"create\" + typeName;\n documentArgs = \"($input: Create\" + typeName + \"Input!)\";\n operationArgs = '(input: $input)';\n transformerMutationType = TransformerMutationType.CREATE;\n break;\n case 'UPDATE':\n operation = \"update\" + typeName;\n documentArgs = \"($input: Update\" + typeName + \"Input!, $condition: Model\" + typeName + \"ConditionInput)\";\n operationArgs = '(input: $input, condition: $condition)';\n transformerMutationType = TransformerMutationType.UPDATE;\n break;\n case 'DELETE':\n operation = \"delete\" + typeName;\n documentArgs = \"($input: Delete\" + typeName + \"Input!, $condition: Model\" + typeName + \"ConditionInput)\";\n operationArgs = '(input: $input, condition: $condition)';\n transformerMutationType = TransformerMutationType.DELETE;\n break;\n case 'GET':\n operation = \"get\" + typeName;\n documentArgs = \"($id: ID!)\";\n operationArgs = '(id: $id)';\n transformerMutationType = TransformerMutationType.GET;\n break;\n default:\n throw new Error(\"Invalid graphQlOpType \" + graphQLOpType);\n }\n return [\n [\n transformerMutationType,\n operation,\n GraphQLOperationType[graphQLOpType] + \" operation\" + documentArgs + \"{\\n\\t\\t\" + operation + operationArgs + \"{\\n\\t\\t\\t\" + selectionSet + \"\\n\\t\\t}\\n\\t}\",\n ],\n ];\n}\nexport function createMutationInstanceFromModelOperation(relationships, modelDefinition, opType, model, element, condition, MutationEventConstructor, modelInstanceCreator, id) {\n var operation;\n switch (opType) {\n case OpType.INSERT:\n operation = TransformerMutationType.CREATE;\n break;\n case OpType.UPDATE:\n operation = TransformerMutationType.UPDATE;\n break;\n case OpType.DELETE:\n operation = TransformerMutationType.DELETE;\n break;\n default:\n throw new Error(\"Invalid opType \" + opType);\n }\n // stringify nested objects of type AWSJSON\n // this allows us to return parsed JSON to users (see `castInstanceType()` in datastore.ts),\n // but still send the object correctly over the wire\n var replacer = function (k, v) {\n var isAWSJSON = k &&\n v !== null &&\n typeof v === 'object' &&\n modelDefinition.fields[k] &&\n modelDefinition.fields[k].type === 'AWSJSON';\n if (isAWSJSON) {\n return JSON.stringify(v);\n }\n return v;\n };\n var modelId = getIdentifierValue(modelDefinition, element);\n var optionalId = OpType.INSERT && id ? { id: id } : {};\n var mutationEvent = modelInstanceCreator(MutationEventConstructor, __assign(__assign({}, optionalId), { data: JSON.stringify(element, replacer), modelId: modelId, model: model.name, operation: operation, condition: JSON.stringify(condition) }));\n return mutationEvent;\n}\nexport function predicateToGraphQLCondition(predicate, modelDefinition) {\n var result = {};\n if (!predicate || !Array.isArray(predicate.predicates)) {\n return result;\n }\n // This is compatible with how the GQL Transform currently generates the Condition Input,\n // i.e. any PK and SK fields are omitted and can't be used as conditions.\n // However, I think this limits usability.\n // What if we want to delete all records where SK > some value\n // Or all records where PK = some value but SKs are different values\n // TODO: if the Transform gets updated we'll need to modify this logic to only omit\n // key fields from the predicate/condition when ALL of the keyFields are present and using `eq` operators\n var keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n return predicateToGraphQLFilter(predicate, keyFields);\n}\n/**\n * @param predicatesGroup - Predicate Group\n @returns GQL Filter Expression from Predicate Group\n \n @remarks Flattens redundant list predicates\n @example\n\n ```js\n { and:[{ and:[{ username: { eq: 'bob' }}] }] }\n ```\n Becomes\n ```js\n { and:[{ username: { eq: 'bob' }}] }\n ```\n */\nexport function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit, root) {\n if (fieldsToOmit === void 0) { fieldsToOmit = []; }\n if (root === void 0) { root = true; }\n var result = {};\n if (!predicatesGroup || !Array.isArray(predicatesGroup.predicates)) {\n return result;\n }\n var type = predicatesGroup.type, predicates = predicatesGroup.predicates;\n var isList = type === 'and' || type === 'or';\n result[type] = isList ? [] : {};\n var children = [];\n predicates.forEach(function (predicate) {\n var _a, _b;\n if (isPredicateObj(predicate)) {\n var field = predicate.field, operator = predicate.operator, operand = predicate.operand;\n if (fieldsToOmit.includes(field))\n return;\n var gqlField = (_a = {},\n _a[field] = (_b = {}, _b[operator] = operand, _b),\n _a);\n children.push(gqlField);\n return;\n }\n var child = predicateToGraphQLFilter(predicate, fieldsToOmit, false);\n if (Object.keys(child).length > 0) {\n children.push(child);\n }\n });\n // flatten redundant list predicates\n if (children.length === 1) {\n var _a = __read(children, 1), child = _a[0];\n if (\n // any nested list node\n (isList && !root) ||\n // root list node where the only child is also a list node\n (isList && root && ('and' in child || 'or' in child))) {\n delete result[type];\n Object.assign(result, child);\n return result;\n }\n }\n children.forEach(function (child) {\n if (isList) {\n result[type].push(child);\n }\n else {\n result[type] = child;\n }\n });\n if (isList) {\n if (result[type].length === 0)\n return {};\n }\n else {\n if (Object.keys(result[type]).length === 0)\n return {};\n }\n return result;\n}\n/**\n *\n * @param group - selective sync predicate group\n * @returns set of distinct field names in the filter group\n */\nexport function filterFields(group) {\n var fields = new Set();\n if (!group || !Array.isArray(group.predicates))\n return fields;\n var predicates = group.predicates;\n var stack = __spread(predicates);\n while (stack.length > 0) {\n var current = stack.pop();\n if (isPredicateObj(current)) {\n fields.add(current.field);\n }\n else if (isPredicateGroup(current)) {\n stack.push.apply(stack, __spread(current.predicates));\n }\n }\n return fields;\n}\n/**\n *\n * @param modelDefinition\n * @returns set of field names used with dynamic auth modes configured for the provided model definition\n */\nexport function dynamicAuthFields(modelDefinition) {\n var e_1, _a;\n var rules = getAuthorizationRules(modelDefinition);\n var fields = new Set();\n try {\n for (var rules_1 = __values(rules), rules_1_1 = rules_1.next(); !rules_1_1.done; rules_1_1 = rules_1.next()) {\n var rule = rules_1_1.value;\n if (rule.groupsField && !rule.groups.length) {\n // dynamic group rule will have no values in `rule.groups`\n fields.add(rule.groupsField);\n }\n else if (rule.ownerField) {\n fields.add(rule.ownerField);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rules_1_1 && !rules_1_1.done && (_a = rules_1.return)) _a.call(rules_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return fields;\n}\n/**\n *\n * @param group - selective sync predicate group\n * @returns the total number of OR'd predicates in the filter group\n *\n * @example returns 2\n * ```js\n * { type: \"or\", predicates: [\n * { field: \"username\", operator: \"beginsWith\", operand: \"a\" },\n * { field: \"title\", operator: \"contains\", operand: \"abc\" },\n * ]}\n * ```\n */\nexport function countFilterCombinations(group) {\n if (!group || !Array.isArray(group.predicates))\n return 0;\n var count = 0;\n var stack = [group];\n while (stack.length > 0) {\n var current = stack.pop();\n if (isPredicateGroup(current)) {\n var predicates = current.predicates, type = current.type;\n // ignore length = 1; groups with 1 predicate will get flattened when converted to gqlFilter\n if (type === 'or' && predicates.length > 1) {\n count += predicates.length;\n }\n stack.push.apply(stack, __spread(predicates));\n }\n }\n // if we didn't encounter any OR groups, default to 1\n return count || 1;\n}\n/**\n *\n * @param group - selective sync predicate group\n * @returns name of repeated field | null\n *\n * @example returns \"username\"\n * ```js\n * { type: \"and\", predicates: [\n * \t\t{ field: \"username\", operator: \"beginsWith\", operand: \"a\" },\n * \t\t{ field: \"username\", operator: \"contains\", operand: \"abc\" },\n * ] }\n * ```\n */\nexport function repeatedFieldInGroup(group) {\n if (!group || !Array.isArray(group.predicates))\n return null;\n // convert to filter in order to flatten redundant groups\n var gqlFilter = predicateToGraphQLFilter(group);\n var stack = [gqlFilter];\n var hasGroupRepeatedFields = function (fields) {\n var e_2, _a;\n var seen = {};\n try {\n for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {\n var f = fields_1_1.value;\n var _b = __read(Object.keys(f), 1), fieldName = _b[0];\n if (seen[fieldName]) {\n return fieldName;\n }\n seen[fieldName] = true;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return null;\n };\n while (stack.length > 0) {\n var current = stack.pop();\n var _a = __read(Object.keys(current), 1), key = _a[0];\n var values = current[key];\n if (!Array.isArray(values)) {\n return null;\n }\n // field value will be single object\n var predicateObjects = values.filter(function (v) { return !Array.isArray(Object.values(v)[0]); });\n // group value will be an array\n var predicateGroups = values.filter(function (v) {\n return Array.isArray(Object.values(v)[0]);\n });\n if (key === 'and') {\n var repeatedField = hasGroupRepeatedFields(predicateObjects);\n if (repeatedField) {\n return repeatedField;\n }\n }\n stack.push.apply(stack, __spread(predicateGroups));\n }\n return null;\n}\nexport var RTFError;\n(function (RTFError) {\n RTFError[RTFError[\"UnknownField\"] = 0] = \"UnknownField\";\n RTFError[RTFError[\"MaxAttributes\"] = 1] = \"MaxAttributes\";\n RTFError[RTFError[\"MaxCombinations\"] = 2] = \"MaxCombinations\";\n RTFError[RTFError[\"RepeatedFieldname\"] = 3] = \"RepeatedFieldname\";\n RTFError[RTFError[\"NotGroup\"] = 4] = \"NotGroup\";\n RTFError[RTFError[\"FieldNotInType\"] = 5] = \"FieldNotInType\";\n})(RTFError || (RTFError = {}));\nexport function generateRTFRemediation(errorType, modelDefinition, predicatesGroup) {\n var selSyncFields = filterFields(predicatesGroup);\n var selSyncFieldStr = __spread(selSyncFields).join(', ');\n var dynamicAuthModeFields = dynamicAuthFields(modelDefinition);\n var dynamicAuthFieldsStr = __spread(dynamicAuthModeFields).join(', ');\n var filterCombinations = countFilterCombinations(predicatesGroup);\n var repeatedField = repeatedFieldInGroup(predicatesGroup);\n switch (errorType) {\n case RTFError.UnknownField:\n return (\"Your API was generated with an older version of the CLI that doesn't support backend subscription filtering.\" +\n 'To enable backend subscription filtering, upgrade your Amplify CLI to the latest version and push your app by running `amplify upgrade` followed by `amplify push`');\n case RTFError.MaxAttributes: {\n var message = \"Your selective sync expression for \" + modelDefinition.name + \" contains \" + selSyncFields.size + \" different model fields: \" + selSyncFieldStr + \".\\n\\n\";\n if (dynamicAuthModeFields.size > 0) {\n message +=\n \"Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\\n\\n\" +\n \"Dynamic auth modes, such as owner auth and dynamic group auth each utilize 1 field.\\n\" +\n (\"You currently have \" + dynamicAuthModeFields.size + \" dynamic auth mode(s) configured on this model: \" + dynamicAuthFieldsStr + \".\");\n }\n return message;\n }\n case RTFError.MaxCombinations: {\n var message = \"Your selective sync expression for \" + modelDefinition.name + \" contains \" + filterCombinations + \" field combinations (total number of predicates in an OR expression).\\n\\n\";\n if (dynamicAuthModeFields.size > 0) {\n message +=\n \"Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\\n\\n\" +\n \"Dynamic auth modes, such as owner auth and dynamic group auth factor in to the number of combinations you're using.\\n\" +\n (\"You currently have \" + dynamicAuthModeFields.size + \" dynamic auth mode(s) configured on this model: \" + dynamicAuthFieldsStr + \".\");\n }\n return message;\n }\n case RTFError.RepeatedFieldname:\n return \"Your selective sync expression for \" + modelDefinition.name + \" contains multiple entries for \" + repeatedField + \" in the same AND group.\";\n case RTFError.NotGroup:\n return (\"Your selective sync expression for \" + modelDefinition.name + \" uses a `not` group. If you'd like to filter subscriptions in the backend, \" +\n \"rewrite your expression using `ne` or `notContains` operators.\");\n case RTFError.FieldNotInType:\n // no remediation instructions. We'll surface the message directly\n return '';\n }\n}\nexport function getUserGroupsFromToken(token, rule) {\n // validate token against groupClaim\n var userGroups = token[rule.groupClaim] || [];\n if (typeof userGroups === 'string') {\n var parsedGroups = void 0;\n try {\n parsedGroups = JSON.parse(userGroups);\n }\n catch (e) {\n parsedGroups = userGroups;\n }\n userGroups = [].concat(parsedGroups);\n }\n return userGroups;\n}\nexport function getModelAuthModes(_a) {\n var authModeStrategy = _a.authModeStrategy, defaultAuthMode = _a.defaultAuthMode, modelName = _a.modelName, schema = _a.schema;\n return __awaiter(this, void 0, void 0, function () {\n var operations, modelAuthModes, error_1;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n operations = Object.values(ModelOperation);\n modelAuthModes = {\n CREATE: [],\n READ: [],\n UPDATE: [],\n DELETE: [],\n };\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(operations.map(function (operation) { return __awaiter(_this, void 0, void 0, function () {\n var authModes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, authModeStrategy({\n schema: schema,\n modelName: modelName,\n operation: operation,\n })];\n case 1:\n authModes = _a.sent();\n if (typeof authModes === 'string') {\n modelAuthModes[operation] = [authModes];\n }\n else if (Array.isArray(authModes) && authModes.length) {\n modelAuthModes[operation] = authModes;\n }\n else {\n // Use default auth mode if nothing is returned from authModeStrategy\n modelAuthModes[operation] = [defaultAuthMode];\n }\n return [2 /*return*/];\n }\n });\n }); }))];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _b.sent();\n logger.debug(\"Error getting auth modes for model: \" + modelName, error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, modelAuthModes];\n }\n });\n });\n}\nexport function getForbiddenError(error) {\n var forbiddenErrorMessages = [\n 'Request failed with status code 401',\n 'Request failed with status code 403',\n ];\n var forbiddenError;\n if (error && error.errors) {\n forbiddenError = error.errors.find(function (err) {\n return forbiddenErrorMessages.includes(err.message);\n });\n }\n else if (error && error.message) {\n forbiddenError = error;\n }\n if (forbiddenError) {\n return forbiddenError.message;\n }\n return null;\n}\nexport function getClientSideAuthError(error) {\n var clientSideAuthErrors = Object.values(GraphQLAuthError);\n var clientSideError = error &&\n error.message &&\n clientSideAuthErrors.find(function (clientError) {\n return error.message.includes(clientError);\n });\n return clientSideError || null;\n}\nexport function getTokenForCustomAuth(authMode, amplifyConfig) {\n if (amplifyConfig === void 0) { amplifyConfig = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, functionAuthProvider, token, error_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(authMode === GRAPHQL_AUTH_MODE.AWS_LAMBDA)) return [3 /*break*/, 6];\n _a = amplifyConfig.authProviders, functionAuthProvider = (_a === void 0 ? { functionAuthProvider: null } : _a).functionAuthProvider;\n if (!(functionAuthProvider && typeof functionAuthProvider === 'function')) return [3 /*break*/, 5];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, functionAuthProvider()];\n case 2:\n token = (_b.sent()).token;\n return [2 /*return*/, token];\n case 3:\n error_2 = _b.sent();\n throw new Error(\"Error retrieving token from `functionAuthProvider`: \" + error_2);\n case 4: return [3 /*break*/, 6];\n case 5: \n // TODO: add docs link once available\n throw new Error(\"You must provide a `functionAuthProvider` function to `DataStore.configure` when using \" + GRAPHQL_AUTH_MODE.AWS_LAMBDA);\n case 6: return [2 /*return*/];\n }\n });\n });\n}\n// Util that takes a modelDefinition and model and returns either the id value(s) or the custom primary key value(s)\nexport function getIdentifierValue(modelDefinition, model) {\n var pkFieldNames = extractPrimaryKeyFieldNames(modelDefinition);\n var idOrPk = pkFieldNames.map(function (f) { return model[f]; }).join(IDENTIFIER_KEY_SEPARATOR);\n return idOrPk;\n}\n//# sourceMappingURL=utils.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/*!\n * The MIT License (MIT)\n *\n * Copyright (c) 2016 Christian Speckner \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar Mutex = /** @class */ (function () {\n function Mutex() {\n this._queue = [];\n this._pending = false;\n }\n Mutex.prototype.isLocked = function () {\n return this._pending;\n };\n Mutex.prototype.acquire = function () {\n var _this = this;\n var ticket = new Promise(function (resolve) {\n return _this._queue.push(resolve);\n });\n if (!this._pending) {\n this._dispatchNext();\n }\n return ticket;\n };\n Mutex.prototype.runExclusive = function (callback) {\n return this.acquire().then(function (release) {\n var result;\n try {\n result = callback();\n }\n catch (e) {\n release();\n throw e;\n }\n return Promise.resolve(result).then(function (x) { return (release(), x); }, function (e) {\n release();\n throw e;\n });\n });\n };\n Mutex.prototype._dispatchNext = function () {\n if (this._queue.length > 0) {\n this._pending = true;\n this._queue.shift()(this._dispatchNext.bind(this));\n }\n else {\n this._pending = false;\n }\n };\n return Mutex;\n}());\nexport default Mutex;\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n const returnVal = await target[targetFuncName](...args);\n if (isWrite)\n await tx.done;\n return returnVal;\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isFieldAssociation } from '../types';\n/**\n * Defines a relationship from a LOCAL model.field to a REMOTE model.field and helps\n * navigate the relationship, providing a simplified peek at the relationship details\n * pertinent to setting FK's and constructing join conditions.\n *\n * Because I mean, relationships are tough.\n *\n */\nvar ModelRelationship = /** @class */ (function () {\n /**\n * @param modelDefinition The \"local\" model.\n * @param field The \"local\" model field.\n */\n function ModelRelationship(model, field) {\n if (!isFieldAssociation(model.schema, field)) {\n throw new Error(model.schema.name + \".\" + field + \" is not a relationship.\");\n }\n this.localModel = model;\n this._field = field;\n }\n /**\n * Returns a ModelRelationship for the the given model and field if the pair\n * indicates a relationship to another model. Else, returns `null`.\n *\n * @param model The model the relationship field exists in.\n * @param field The field that may relates the local model to the remote model.\n */\n ModelRelationship.from = function (model, field) {\n if (isFieldAssociation(model.schema, field)) {\n return new this(model, field);\n }\n else {\n return null;\n }\n };\n /**\n * Enumerates all valid `ModelRelationship`'s on the given model.\n *\n * @param model The model definition to enumerate relationships of.\n */\n ModelRelationship.allFrom = function (model) {\n var e_1, _a;\n var relationships = [];\n try {\n for (var _b = __values(Object.keys(model.schema.fields)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var field = _c.value;\n var relationship = ModelRelationship.from(model, field);\n relationship && relationships.push(relationship);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return relationships;\n };\n Object.defineProperty(ModelRelationship.prototype, \"localDefinition\", {\n get: function () {\n return this.localModel.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"field\", {\n /**\n * The virtual/computed field on the local model that should contain\n * the related model.\n */\n get: function () {\n return this._field;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"localConstructor\", {\n /**\n * The constructor that can be used to query DataStore or create instance for\n * the local model.\n */\n get: function () {\n return this.localModel.builder;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"type\", {\n /**\n * The name/type of the relationship the local model has with the remote model\n * via the defined local model field.\n */\n get: function () {\n return this.localAssocation.connectionType;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"localAssocation\", {\n /**\n * Raw details about the local FK as-is from the local model's field definition in\n * the schema. This field requires interpretation.\n *\n * @see localJoinFields\n * @see localAssociatedWith\n */\n get: function () {\n return this.localDefinition.fields[this.field].association;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"localJoinFields\", {\n /**\n * The field names on the local model that can be used to query or queried to match\n * with instances of the remote model.\n *\n * Fields are returned in-order to match the order of `this.remoteKeyFields`.\n */\n get: function () {\n /**\n * This is relatively straightforward, actually.\n *\n * If we have explicitly stated targetNames, codegen is telling us authoritatively\n * to use those fields for this relationship. The local model \"points to\" fields\n * in the remote one.\n *\n * In other cases, the remote model points to this one's\n */\n if (this.localAssocation.targetName) {\n // This case is theoretically unnecessary going forward.\n return [this.localAssocation.targetName];\n }\n else if (this.localAssocation.targetNames) {\n return this.localAssocation.targetNames;\n }\n else {\n return this.localPKFields;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"localPKFields\", {\n /**\n * The field names on the local model that uniquely identify it.\n *\n * These fields may or may not be relevant to the join fields.\n */\n get: function () {\n return this.localModel.pkField;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"remoteDefinition\", {\n get: function () {\n var _a;\n return (_a = this.remoteModelType.modelConstructor) === null || _a === void 0 ? void 0 : _a.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"remoteModelType\", {\n get: function () {\n return this.localDefinition.fields[this.field].type;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"remoteModelConstructor\", {\n /**\n * Constructor that can be used to query DataStore or create instances for\n * the remote model.\n */\n get: function () {\n return this.remoteModelType.modelConstructor.builder;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"remotePKFields\", {\n /**\n * The field names on the remote model that uniquely identify it.\n *\n * These fields may or may not be relevant to the join fields.\n */\n get: function () {\n var _a;\n return ((_a = this.remoteModelType.modelConstructor) === null || _a === void 0 ? void 0 : _a.pkField) || ['id'];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"localAssociatedWith\", {\n /**\n * The `associatedWith` fields from the local perspective.\n *\n * When present, these fields indicate which fields on the remote model to use\n * when looking for a remote association and/or determining the final remote\n * key fields.\n */\n get: function () {\n if (this.localAssocation.connectionType === 'HAS_MANY' ||\n this.localAssocation.connectionType === 'HAS_ONE') {\n // This de-arraying is theoretically unnecessary going forward.\n return Array.isArray(this.localAssocation.associatedWith)\n ? this.localAssocation.associatedWith\n : [this.localAssocation.associatedWith];\n }\n else {\n return undefined;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"explicitRemoteAssociation\", {\n /**\n * The `remote` model's associated field's `assocation` metadata, if\n * present.\n *\n * This is used when determining if the remote model's associated field\n * specifies which FK fields to use. If this value is `undefined`, the\n * name of the remote field (`this.localAssociatedWith`) *is* the remote\n * key field.\n */\n get: function () {\n var _a;\n if (this.localAssociatedWith) {\n if (this.localAssociatedWith.length === 1) {\n return (_a = this.remoteDefinition.fields[this.localAssociatedWith[0]]) === null || _a === void 0 ? void 0 : _a.association;\n }\n else {\n return undefined;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"remoteJoinFields\", {\n /**\n * The field names on the remote model that can used to query or queried to match\n * with instances of the local model.\n *\n * Fields are returned in-order to match the order of `this.localKeyFields`.\n */\n get: function () {\n /**\n * If the local relationship explicitly names \"associated with\" fields, we\n * need to see if this points direction to a reciprocating assocation. If it\n * does, the remote assocation indicates what fields to use.\n */\n var _a, _b, _c;\n if ((_a = this.explicitRemoteAssociation) === null || _a === void 0 ? void 0 : _a.targetName) {\n // This case is theoretically unnecessary going forward.\n return [this.explicitRemoteAssociation.targetName];\n }\n else if ((_b = this.explicitRemoteAssociation) === null || _b === void 0 ? void 0 : _b.targetNames) {\n return (_c = this.explicitRemoteAssociation) === null || _c === void 0 ? void 0 : _c.targetNames;\n }\n else if (this.localAssociatedWith) {\n return this.localAssociatedWith;\n }\n else {\n return this.remotePKFields;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModelRelationship.prototype, \"isComplete\", {\n /**\n * Whether this relationship everything necessary to get, set, and query from\n * the perspective of the local model provided at instantiation.\n */\n get: function () {\n return this.localJoinFields.length > 0 && this.remoteJoinFields.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates an FK mapper object with respect to the given related instance.\n *\n * E.g., if the local FK fields are `[parentId, parentName]` and point to\n * `[customId, name]` on the remote model, `createLocalFKObject(remote)`\n * will return:\n *\n * ```\n * {\n * \tparentId: remote.customId,\n * \tparentName: remote.name\n * }\n * ```\n *\n * @param remote The remote related instance.\n */\n ModelRelationship.prototype.createLocalFKObject = function (remote) {\n var fk = {};\n for (var i = 0; i < this.localJoinFields.length; i++) {\n fk[this.localJoinFields[i]] = remote[this.remoteJoinFields[i]];\n }\n return fk;\n };\n /**\n * Creates an query mapper object to help fetch the remote instance(s) or\n * `null` if any of the necessary local fields are `null` or `undefined`.\n *\n * E.g., if the local FK fields are `[parentId, parentName]` and point to\n * `[customId, name]` on the remote model, `createLocalFKObject(remote)`\n * will return:\n *\n * ```\n * {\n * \tcustomId: local.parentId\n * \tname: local.parentName\n * }\n * ```\n *\n * If the local fields are not populated, returns\n *\n * @param local The local instance.\n */\n ModelRelationship.prototype.createRemoteQueryObject = function (local) {\n var query = {};\n for (var i = 0; i < this.remoteJoinFields.length; i++) {\n var localValue = local[this.localJoinFields[i]];\n if (localValue === null || localValue === undefined)\n return null;\n query[this.remoteJoinFields[i]] = local[this.localJoinFields[i]];\n }\n return query;\n };\n return ModelRelationship;\n}());\nexport { ModelRelationship };\n//# sourceMappingURL=relationship.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { ModelPredicateCreator } from '../../predicates';\nimport { isPredicateObj, } from '../../types';\nimport { getStorename, getIndexKeys, extractPrimaryKeyValues, traverseModel, validatePredicate, isModelConstructor, extractPrimaryKeyFieldNames, } from '../../util';\nimport { ModelRelationship } from '../relationship';\nvar logger = new Logger('DataStore');\nvar DB_NAME = 'amplify-datastore';\nvar StorageAdapterBase = /** @class */ (function () {\n function StorageAdapterBase() {\n this.dbName = DB_NAME;\n }\n /**\n * Initializes local DB\n *\n * @param theSchema\n * @param namespaceResolver\n * @param modelInstanceCreator\n * @param getModelConstructorByModelName\n * @param sessionId\n */\n StorageAdapterBase.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName, sessionId) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, error_1;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.preSetUpChecks()];\n case 1:\n _b.sent();\n if (!!this.initPromise) return [3 /*break*/, 2];\n this.initPromise = new Promise(function (res, rej) {\n _this.resolve = res;\n _this.reject = rej;\n });\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.initPromise];\n case 3:\n _b.sent();\n return [2 /*return*/];\n case 4:\n if (sessionId) {\n this.dbName = DB_NAME + \"-\" + sessionId;\n }\n this.schema = theSchema;\n this.namespaceResolver = namespaceResolver;\n this.modelInstanceCreator = modelInstanceCreator;\n this.getModelConstructorByModelName = getModelConstructorByModelName;\n _b.label = 5;\n case 5:\n _b.trys.push([5, 8, , 9]);\n if (!!this.db) return [3 /*break*/, 7];\n _a = this;\n return [4 /*yield*/, this.initDb()];\n case 6:\n _a.db = _b.sent();\n this.resolve();\n _b.label = 7;\n case 7: return [3 /*break*/, 9];\n case 8:\n error_1 = _b.sent();\n this.reject(error_1);\n return [3 /*break*/, 9];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param modelConstructor\n * @returns local DB table name\n */\n StorageAdapterBase.prototype.getStorenameForModel = function (modelConstructor) {\n var namespace = this.namespaceResolver(modelConstructor);\n var modelName = modelConstructor.name;\n return getStorename(namespace, modelName);\n };\n /**\n *\n * @param model - instantiated model record\n * @returns the record's primary key values\n */\n StorageAdapterBase.prototype.getIndexKeyValuesFromModel = function (model) {\n var modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n var namespaceName = this.namespaceResolver(modelConstructor);\n var keys = getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);\n return extractPrimaryKeyValues(model, keys);\n };\n /**\n * Common metadata for `save` operation\n * used by individual storage adapters\n *\n * @param model\n */\n StorageAdapterBase.prototype.saveMetadata = function (model) {\n var _this = this;\n var modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n var storeName = this.getStorenameForModel(modelConstructor);\n var namespaceName = this.namespaceResolver(modelConstructor);\n var connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);\n var set = new Set();\n var connectionStoreNames = Object.values(connectedModels).map(function (_a) {\n var modelName = _a.modelName, item = _a.item, instance = _a.instance;\n var storeName = getStorename(namespaceName, modelName);\n set.add(storeName);\n var keys = getIndexKeys(_this.schema.namespaces[namespaceName], modelName);\n return { storeName: storeName, item: item, instance: instance, keys: keys };\n });\n var modelKeyValues = this.getIndexKeyValuesFromModel(model);\n return { storeName: storeName, set: set, connectionStoreNames: connectionStoreNames, modelKeyValues: modelKeyValues };\n };\n /**\n * Enforces conditional save. Throws if condition is not met.\n * used by individual storage adapters\n *\n * @param model\n */\n StorageAdapterBase.prototype.validateSaveCondition = function (condition, fromDB) {\n if (!(condition && fromDB)) {\n return;\n }\n var predicates = ModelPredicateCreator.getPredicates(condition);\n var _a = predicates, predicateObjs = _a.predicates, type = _a.type;\n var isValid = validatePredicate(fromDB, type, predicateObjs);\n if (!isValid) {\n var msg = 'Conditional update failed';\n logger.error(msg, { model: fromDB, condition: predicateObjs });\n throw new Error(msg);\n }\n };\n /**\n * Instantiate models from POJO records returned from the database\n *\n * @param namespaceName - string model namespace\n * @param srcModelName - string model name\n * @param records - array of uninstantiated records\n * @returns\n */\n StorageAdapterBase.prototype.load = function (namespaceName, srcModelName, records) {\n return __awaiter(this, void 0, void 0, function () {\n var namespace, relations, connectionStoreNames, modelConstructor;\n var _this = this;\n return __generator(this, function (_a) {\n namespace = this.schema.namespaces[namespaceName];\n relations = namespace.relationships[srcModelName].relationTypes;\n connectionStoreNames = relations.map(function (_a) {\n var modelName = _a.modelName;\n return getStorename(namespaceName, modelName);\n });\n modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);\n if (connectionStoreNames.length === 0) {\n return [2 /*return*/, records.map(function (record) {\n return _this.modelInstanceCreator(modelConstructor, record);\n })];\n }\n return [2 /*return*/, records.map(function (record) {\n return _this.modelInstanceCreator(modelConstructor, record);\n })];\n });\n });\n };\n /**\n * Extracts operands from a predicate group into an array of key values\n * Used in the query method\n *\n * @param predicates - predicate group\n * @param keyPath - string array of key names ['id', 'sortKey']\n * @returns string[] of key values\n *\n * @example\n * ```js\n * { and:[{ id: { eq: 'abc' }}, { sortKey: { eq: 'def' }}] }\n * ```\n * Becomes\n * ```\n * ['abc', 'def']\n * ```\n */\n StorageAdapterBase.prototype.keyValueFromPredicate = function (predicates, keyPath) {\n var e_1, _a;\n var predicateObjs = predicates.predicates;\n if (predicateObjs.length !== keyPath.length) {\n return;\n }\n var keyValues = [];\n var _loop_1 = function (key) {\n var predicateObj = predicateObjs.find(function (p) {\n // it's a relevant predicate object only if it's an equality\n // operation for a key field from the key:\n return isPredicateObj(p) &&\n p.field === key &&\n p.operator === 'eq' &&\n p.operand !== null &&\n p.operand !== undefined;\n });\n predicateObj && keyValues.push(predicateObj.operand);\n };\n try {\n for (var keyPath_1 = __values(keyPath), keyPath_1_1 = keyPath_1.next(); !keyPath_1_1.done; keyPath_1_1 = keyPath_1.next()) {\n var key = keyPath_1_1.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keyPath_1_1 && !keyPath_1_1.done && (_a = keyPath_1.return)) _a.call(keyPath_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keyValues.length === keyPath.length ? keyValues : undefined;\n };\n /**\n * Common metadata for `query` operation\n * used by individual storage adapters\n *\n * @param modelConstructor\n * @param predicate\n * @param pagination\n */\n StorageAdapterBase.prototype.queryMetadata = function (modelConstructor, predicate, pagination) {\n var storeName = this.getStorenameForModel(modelConstructor);\n var namespaceName = this.namespaceResolver(modelConstructor);\n var predicates = predicate && ModelPredicateCreator.getPredicates(predicate);\n var keyPath = getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);\n var queryByKey = predicates && this.keyValueFromPredicate(predicates, keyPath);\n var hasSort = pagination && pagination.sort;\n var hasPagination = pagination && pagination.limit;\n return {\n storeName: storeName,\n namespaceName: namespaceName,\n queryByKey: queryByKey,\n predicates: predicates,\n hasSort: hasSort,\n hasPagination: hasPagination,\n };\n };\n /**\n * Delete record\n * Cascades to related records (for Has One and Has Many relationships)\n *\n * @param modelOrModelConstructor\n * @param condition\n * @returns\n */\n StorageAdapterBase.prototype.delete = function (modelOrModelConstructor, condition) {\n return __awaiter(this, void 0, void 0, function () {\n var deleteQueue, modelConstructor, namespace, models, deletedModels, deletedModels, model, modelConstructor, namespaceName, storeName, keyValues, fromDB, msg, predicates, _a, predicateObjs, type, isValid, msg, deletedModels;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.preOpCheck()];\n case 1:\n _b.sent();\n deleteQueue = [];\n if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 9];\n modelConstructor = modelOrModelConstructor;\n namespace = this.namespaceResolver(modelConstructor);\n return [4 /*yield*/, this.query(modelConstructor, condition)];\n case 2:\n models = _b.sent();\n if (!(condition !== undefined)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.deleteTraverse(models, modelConstructor, namespace, deleteQueue)];\n case 3:\n _b.sent();\n return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 4:\n _b.sent();\n deletedModels = deleteQueue.reduce(function (acc, _a) {\n var items = _a.items;\n return acc.concat(items);\n }, []);\n return [2 /*return*/, [models, deletedModels]];\n case 5: return [4 /*yield*/, this.deleteTraverse(models, modelConstructor, namespace, deleteQueue)];\n case 6:\n _b.sent();\n return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 7:\n _b.sent();\n deletedModels = deleteQueue.reduce(function (acc, _a) {\n var items = _a.items;\n return acc.concat(items);\n }, []);\n return [2 /*return*/, [models, deletedModels]];\n case 8: return [3 /*break*/, 16];\n case 9:\n model = modelOrModelConstructor;\n modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n namespaceName = this.namespaceResolver(modelConstructor);\n storeName = this.getStorenameForModel(modelConstructor);\n if (!condition) return [3 /*break*/, 12];\n keyValues = this.getIndexKeyValuesFromModel(model);\n return [4 /*yield*/, this._get(storeName, keyValues)];\n case 10:\n fromDB = _b.sent();\n if (fromDB === undefined) {\n msg = 'Model instance not found in storage';\n logger.warn(msg, { model: model });\n return [2 /*return*/, [[model], []]];\n }\n predicates = ModelPredicateCreator.getPredicates(condition);\n _a = predicates, predicateObjs = _a.predicates, type = _a.type;\n isValid = validatePredicate(fromDB, type, predicateObjs);\n if (!isValid) {\n msg = 'Conditional update failed';\n logger.error(msg, { model: fromDB, condition: predicateObjs });\n throw new Error(msg);\n }\n return [4 /*yield*/, this.deleteTraverse([model], modelConstructor, namespaceName, deleteQueue)];\n case 11:\n _b.sent();\n return [3 /*break*/, 14];\n case 12: return [4 /*yield*/, this.deleteTraverse([model], modelConstructor, namespaceName, deleteQueue)];\n case 13:\n _b.sent();\n _b.label = 14;\n case 14: return [4 /*yield*/, this.deleteItem(deleteQueue)];\n case 15:\n _b.sent();\n deletedModels = deleteQueue.reduce(function (acc, _a) {\n var items = _a.items;\n return acc.concat(items);\n }, []);\n return [2 /*return*/, [[model], deletedModels]];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Recursively traverse relationship graph and add\n * all Has One and Has Many relations to `deleteQueue` param\n *\n * Actual deletion of records added to `deleteQueue` occurs in the `delete` method\n *\n * @param models\n * @param modelConstructor\n * @param namespace\n * @param deleteQueue\n */\n StorageAdapterBase.prototype.deleteTraverse = function (models, modelConstructor, namespace, deleteQueue) {\n var models_1, models_1_1;\n var e_2, _a, e_3, _b;\n return __awaiter(this, void 0, void 0, function () {\n var cascadingRelationTypes, model, modelDefinition, modelMeta, relationships, relationships_1, relationships_1_1, r, queryObject, relatedRecords, e_3_1, e_2_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n cascadingRelationTypes = ['HAS_ONE', 'HAS_MANY'];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 19, 20, 25]);\n models_1 = __asyncValues(models);\n _c.label = 2;\n case 2: return [4 /*yield*/, models_1.next()];\n case 3:\n if (!(models_1_1 = _c.sent(), !models_1_1.done)) return [3 /*break*/, 18];\n model = models_1_1.value;\n modelDefinition = this.schema.namespaces[namespace].models[modelConstructor.name];\n modelMeta = {\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n };\n relationships = ModelRelationship.allFrom(modelMeta).filter(function (r) {\n return cascadingRelationTypes.includes(r.type);\n });\n _c.label = 4;\n case 4:\n _c.trys.push([4, 11, 12, 17]);\n relationships_1 = __asyncValues(relationships);\n _c.label = 5;\n case 5: return [4 /*yield*/, relationships_1.next()];\n case 6:\n if (!(relationships_1_1 = _c.sent(), !relationships_1_1.done)) return [3 /*break*/, 10];\n r = relationships_1_1.value;\n queryObject = r.createRemoteQueryObject(model);\n if (!(queryObject !== null)) return [3 /*break*/, 9];\n return [4 /*yield*/, this.query(r.remoteModelConstructor, ModelPredicateCreator.createFromFlatEqualities(r.remoteDefinition, queryObject))];\n case 7:\n relatedRecords = _c.sent();\n return [4 /*yield*/, this.deleteTraverse(relatedRecords, r.remoteModelConstructor, namespace, deleteQueue)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 5];\n case 10: return [3 /*break*/, 17];\n case 11:\n e_3_1 = _c.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 17];\n case 12:\n _c.trys.push([12, , 15, 16]);\n if (!(relationships_1_1 && !relationships_1_1.done && (_b = relationships_1.return))) return [3 /*break*/, 14];\n return [4 /*yield*/, _b.call(relationships_1)];\n case 13:\n _c.sent();\n _c.label = 14;\n case 14: return [3 /*break*/, 16];\n case 15:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 16: return [7 /*endfinally*/];\n case 17: return [3 /*break*/, 2];\n case 18: return [3 /*break*/, 25];\n case 19:\n e_2_1 = _c.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 25];\n case 20:\n _c.trys.push([20, , 23, 24]);\n if (!(models_1_1 && !models_1_1.done && (_a = models_1.return))) return [3 /*break*/, 22];\n return [4 /*yield*/, _a.call(models_1)];\n case 21:\n _c.sent();\n _c.label = 22;\n case 22: return [3 /*break*/, 24];\n case 23:\n if (e_2) throw e_2.error;\n return [7 /*endfinally*/];\n case 24: return [7 /*endfinally*/];\n case 25:\n deleteQueue.push({\n storeName: getStorename(namespace, modelConstructor.name),\n items: models,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n return StorageAdapterBase;\n}());\nexport { StorageAdapterBase };\n//# sourceMappingURL=StorageAdapterBase.js.map","import { __asyncValues, __awaiter, __extends, __generator, __read, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport * as idb from 'idb';\nimport { isPredicateObj, isPredicateGroup, OpType, QueryOne, } from '../../types';\nimport { isPrivateMode, traverseModel, validatePredicate, inMemoryPagination, keysEqual, getStorename, isSafariCompatabilityMode, } from '../../util';\nimport { StorageAdapterBase } from './StorageAdapterBase';\nvar logger = new Logger('DataStore');\n/**\n * The point after which queries composed of multiple simple OR conditions\n * should scan-and-filter instead of individual queries for each condition.\n *\n * At some point, this should be configurable and/or dynamic based on table\n * size and possibly even on observed average seek latency. For now, it's\n * based on an manual \"binary search\" for the breakpoint as measured in the\n * unit test suite. This isn't necessarily optimal. But, it's at least derived\n * empirically, rather than theoretically and without any verification!\n *\n * REMEMBER! If you run more realistic benchmarks and update this value, update\n * this comment so the validity and accuracy of future query tuning exercises\n * can be compared to the methods used to derive the current value. E.g.,\n *\n * 1. In browser benchmark > unit test benchmark\n * 2. Multi-browser benchmark > single browser benchmark\n * 3. Benchmarks of various table sizes > static table size benchmark\n *\n * etc...\n *\n */\nvar MULTI_OR_CONDITION_SCAN_BREAKPOINT = 7;\n//\nvar DB_VERSION = 3;\nvar IndexedDBAdapter = /** @class */ (function (_super) {\n __extends(IndexedDBAdapter, _super);\n function IndexedDBAdapter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.safariCompatabilityMode = false;\n /**\n * Checks the given path against the browser's IndexedDB implementation for\n * necessary compatibility transformations, applying those transforms if needed.\n *\n * @param `keyArr` strings to compatibilize for browser-indexeddb index operations\n * @returns An array or string, depending on and given key,\n * that is ensured to be compatible with the IndexedDB implementation's nuances.\n */\n _this.canonicalKeyPath = function (keyArr) {\n if (_this.safariCompatabilityMode) {\n return keyArr.length > 1 ? keyArr : keyArr[0];\n }\n return keyArr;\n };\n return _this;\n //#endregion\n }\n // checks are called by StorageAdapterBase class\n IndexedDBAdapter.prototype.preSetUpChecks = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.setSafariCompatabilityMode()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.preOpCheck = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Initialize IndexedDB database\n * Create new DB if one doesn't exist\n * Upgrade outdated DB\n *\n * Called by `StorageAdapterBase.setUp()`\n *\n * @returns IDB Database instance\n */\n IndexedDBAdapter.prototype.initDb = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, idb.openDB(this.dbName, DB_VERSION, {\n upgrade: function (db, oldVersion, newVersion, txn) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, storeName, origStore, tmpName, _c, namespaceName, modelName, modelInCurrentSchema, newStore, cursor, count, e_1_1, error_1;\n var e_1, _d;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n // create new database\n if (oldVersion === 0) {\n Object.keys(this.schema.namespaces).forEach(function (namespaceName) {\n var namespace = _this.schema.namespaces[namespaceName];\n Object.keys(namespace.models).forEach(function (modelName) {\n var storeName = getStorename(namespaceName, modelName);\n _this.createObjectStoreForModel(db, namespaceName, storeName, modelName);\n });\n });\n return [2 /*return*/];\n }\n if (!((oldVersion === 1 || oldVersion === 2) && newVersion === 3)) return [3 /*break*/, 16];\n _e.label = 1;\n case 1:\n _e.trys.push([1, 14, , 15]);\n _e.label = 2;\n case 2:\n _e.trys.push([2, 11, 12, 13]);\n _a = __values(txn.objectStoreNames), _b = _a.next();\n _e.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 10];\n storeName = _b.value;\n origStore = txn.objectStore(storeName);\n tmpName = \"tmp_\" + storeName;\n origStore.name = tmpName;\n _c = this.getNamespaceAndModelFromStorename(storeName), namespaceName = _c.namespaceName, modelName = _c.modelName;\n modelInCurrentSchema = modelName in this.schema.namespaces[namespaceName].models;\n if (!modelInCurrentSchema) {\n // delete original\n db.deleteObjectStore(tmpName);\n return [3 /*break*/, 9];\n }\n newStore = this.createObjectStoreForModel(db, namespaceName, storeName, modelName);\n return [4 /*yield*/, origStore.openCursor()];\n case 4:\n cursor = _e.sent();\n count = 0;\n _e.label = 5;\n case 5:\n if (!(cursor && cursor.value)) return [3 /*break*/, 8];\n // we don't pass key, since they are all new entries in the new store\n return [4 /*yield*/, newStore.put(cursor.value)];\n case 6:\n // we don't pass key, since they are all new entries in the new store\n _e.sent();\n return [4 /*yield*/, cursor.continue()];\n case 7:\n cursor = _e.sent();\n count++;\n return [3 /*break*/, 5];\n case 8:\n // delete original\n db.deleteObjectStore(tmpName);\n logger.debug(count + \" \" + storeName + \" records migrated\");\n _e.label = 9;\n case 9:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 10: return [3 /*break*/, 13];\n case 11:\n e_1_1 = _e.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 13];\n case 12:\n try {\n if (_b && !_b.done && (_d = _a.return)) _d.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 13:\n // add new models created after IndexedDB, but before migration\n // this case may happen when a user has not opened an app for\n // some time and a new model is added during that time\n Object.keys(this.schema.namespaces).forEach(function (namespaceName) {\n var namespace = _this.schema.namespaces[namespaceName];\n var objectStoreNames = new Set(txn.objectStoreNames);\n Object.keys(namespace.models)\n .map(function (modelName) {\n return [modelName, getStorename(namespaceName, modelName)];\n })\n .filter(function (_a) {\n var _b = __read(_a, 2), storeName = _b[1];\n return !objectStoreNames.has(storeName);\n })\n .forEach(function (_a) {\n var _b = __read(_a, 2), modelName = _b[0], storeName = _b[1];\n _this.createObjectStoreForModel(db, namespaceName, storeName, modelName);\n });\n });\n return [3 /*break*/, 15];\n case 14:\n error_1 = _e.sent();\n logger.error('Error migrating IndexedDB data', error_1);\n txn.abort();\n throw error_1;\n case 15: return [2 /*return*/];\n case 16: return [2 /*return*/];\n }\n });\n }); },\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n IndexedDBAdapter.prototype._get = function (storeOrStoreName, keyArr) {\n return __awaiter(this, void 0, void 0, function () {\n var index, storeName, store, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (typeof storeOrStoreName === 'string') {\n storeName = storeOrStoreName;\n index = this.db.transaction(storeName, 'readonly').store.index('byPk');\n }\n else {\n store = storeOrStoreName;\n index = store.index('byPk');\n }\n return [4 /*yield*/, index.get(this.canonicalKeyPath(keyArr))];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.clear = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _b.sent();\n (_a = this.db) === null || _a === void 0 ? void 0 : _a.close();\n return [4 /*yield*/, idb.deleteDB(this.dbName)];\n case 2:\n _b.sent();\n this.db = undefined;\n this.initPromise = undefined;\n return [2 /*return*/];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.save = function (model, condition) {\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var _b, storeName, set, connectionStoreNames, modelKeyValues, tx, store, fromDB, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, store_1, itemKeyValues, fromDB_1, opType, key, e_2_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _c.sent();\n _b = this.saveMetadata(model), storeName = _b.storeName, set = _b.set, connectionStoreNames = _b.connectionStoreNames, modelKeyValues = _b.modelKeyValues;\n tx = this.db.transaction(__spread([storeName], Array.from(set.values())), 'readwrite');\n store = tx.objectStore(storeName);\n return [4 /*yield*/, this._get(store, modelKeyValues)];\n case 2:\n fromDB = _c.sent();\n this.validateSaveCondition(condition, fromDB);\n result = [];\n _c.label = 3;\n case 3:\n _c.trys.push([3, 11, 12, 17]);\n connectionStoreNames_1 = __asyncValues(connectionStoreNames);\n _c.label = 4;\n case 4: return [4 /*yield*/, connectionStoreNames_1.next()];\n case 5:\n if (!(connectionStoreNames_1_1 = _c.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 10];\n resItem = connectionStoreNames_1_1.value;\n storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;\n store_1 = tx.objectStore(storeName_1);\n itemKeyValues = keys.map(function (key) { return item[key]; });\n return [4 /*yield*/, this._get(store_1, itemKeyValues)];\n case 6:\n fromDB_1 = _c.sent();\n opType = fromDB_1 ? OpType.UPDATE : OpType.INSERT;\n if (!(keysEqual(itemKeyValues, modelKeyValues) ||\n opType === OpType.INSERT)) return [3 /*break*/, 9];\n return [4 /*yield*/, store_1\n .index('byPk')\n .getKey(this.canonicalKeyPath(itemKeyValues))];\n case 7:\n key = _c.sent();\n return [4 /*yield*/, store_1.put(item, key)];\n case 8:\n _c.sent();\n result.push([instance, opType]);\n _c.label = 9;\n case 9: return [3 /*break*/, 4];\n case 10: return [3 /*break*/, 17];\n case 11:\n e_2_1 = _c.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 17];\n case 12:\n _c.trys.push([12, , 15, 16]);\n if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 14];\n return [4 /*yield*/, _a.call(connectionStoreNames_1)];\n case 13:\n _c.sent();\n _c.label = 14;\n case 14: return [3 /*break*/, 16];\n case 15:\n if (e_2) throw e_2.error;\n return [7 /*endfinally*/];\n case 16: return [7 /*endfinally*/];\n case 17: return [4 /*yield*/, tx.done];\n case 18:\n _c.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, storeName, namespaceName, queryByKey, predicates, hasSort, hasPagination, records;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _b.sent();\n _a = this.queryMetadata(modelConstructor, predicate, pagination), storeName = _a.storeName, namespaceName = _a.namespaceName, queryByKey = _a.queryByKey, predicates = _a.predicates, hasSort = _a.hasSort, hasPagination = _a.hasPagination;\n return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {\n var record, filtered, all;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryByKey) return [3 /*break*/, 2];\n return [4 /*yield*/, this.getByKey(storeName, queryByKey)];\n case 1:\n record = _a.sent();\n return [2 /*return*/, record ? [record] : []];\n case 2:\n if (!predicates) return [3 /*break*/, 4];\n return [4 /*yield*/, this.filterOnPredicate(storeName, predicates)];\n case 3:\n filtered = _a.sent();\n return [2 /*return*/, this.inMemoryPagination(filtered, pagination)];\n case 4:\n if (!hasSort) return [3 /*break*/, 6];\n return [4 /*yield*/, this.getAll(storeName)];\n case 5:\n all = _a.sent();\n return [2 /*return*/, this.inMemoryPagination(all, pagination)];\n case 6:\n if (hasPagination) {\n return [2 /*return*/, this.enginePagination(storeName, pagination)];\n }\n return [2 /*return*/, this.getAll(storeName)];\n }\n });\n }); })()];\n case 2:\n records = (_b.sent());\n return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];\n case 3: return [2 /*return*/, _b.sent()];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {\n if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }\n return __awaiter(this, void 0, void 0, function () {\n var storeName, cursor, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _a.sent();\n storeName = this.getStorenameForModel(modelConstructor);\n return [4 /*yield*/, this.db\n .transaction([storeName], 'readonly')\n .objectStore(storeName)\n .openCursor(undefined, firstOrLast === QueryOne.FIRST ? 'next' : 'prev')];\n case 2:\n cursor = _a.sent();\n result = cursor ? cursor.value : undefined;\n return [2 /*return*/, result && this.modelInstanceCreator(modelConstructor, result)];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.batchSave = function (modelConstructor, items) {\n return __awaiter(this, void 0, void 0, function () {\n var modelName, namespaceName, storeName, result, txn, store, _loop_1, this_1, items_1, items_1_1, item, e_3_1;\n var e_3, _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.checkPrivate()];\n case 1:\n _b.sent();\n if (items.length === 0) {\n return [2 /*return*/, []];\n }\n modelName = modelConstructor.name;\n namespaceName = this.namespaceResolver(modelConstructor);\n storeName = this.getStorenameForModel(modelConstructor);\n result = [];\n txn = this.db.transaction(storeName, 'readwrite');\n store = txn.store;\n _loop_1 = function (item) {\n var model, connectedModels, keyValues, _deleted, index, key, instance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n model = this_1.modelInstanceCreator(modelConstructor, item);\n connectedModels = traverseModel(modelName, model, this_1.schema.namespaces[namespaceName], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);\n keyValues = this_1.getIndexKeyValuesFromModel(model);\n _deleted = item._deleted;\n index = store.index('byPk');\n return [4 /*yield*/, index.getKey(this_1.canonicalKeyPath(keyValues))];\n case 1:\n key = _a.sent();\n if (!!_deleted) return [3 /*break*/, 3];\n instance = connectedModels.find(function (_a) {\n var instance = _a.instance;\n var instanceKeyValues = _this.getIndexKeyValuesFromModel(instance);\n return keysEqual(instanceKeyValues, keyValues);\n }).instance;\n result.push([\n instance,\n key ? OpType.UPDATE : OpType.INSERT,\n ]);\n return [4 /*yield*/, store.put(instance, key)];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n result.push([item, OpType.DELETE]);\n if (!key) return [3 /*break*/, 5];\n return [4 /*yield*/, store.delete(key)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _b.label = 2;\n case 2:\n _b.trys.push([2, 7, 8, 9]);\n items_1 = __values(items), items_1_1 = items_1.next();\n _b.label = 3;\n case 3:\n if (!!items_1_1.done) return [3 /*break*/, 6];\n item = items_1_1.value;\n return [5 /*yield**/, _loop_1(item)];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5:\n items_1_1 = items_1.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_3) throw e_3.error; }\n return [7 /*endfinally*/];\n case 9: return [4 /*yield*/, txn.done];\n case 10:\n _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.deleteItem = function (deleteQueue) {\n var e_4, _a, e_5, _b;\n return __awaiter(this, void 0, void 0, function () {\n var connectionStoreNames, tx, _c, _d, deleteItem, storeName, items, store, items_2, items_2_1, item, key, keyValues, itemKey, e_5_1, e_4_1;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n connectionStoreNames = deleteQueue.map(function (_a) {\n var storeName = _a.storeName;\n return storeName;\n });\n tx = this.db.transaction(__spread(connectionStoreNames), 'readwrite');\n _e.label = 1;\n case 1:\n _e.trys.push([1, 22, 23, 28]);\n _c = __asyncValues(deleteQueue);\n _e.label = 2;\n case 2: return [4 /*yield*/, _c.next()];\n case 3:\n if (!(_d = _e.sent(), !_d.done)) return [3 /*break*/, 21];\n deleteItem = _d.value;\n storeName = deleteItem.storeName, items = deleteItem.items;\n store = tx.objectStore(storeName);\n _e.label = 4;\n case 4:\n _e.trys.push([4, 14, 15, 20]);\n items_2 = __asyncValues(items);\n _e.label = 5;\n case 5: return [4 /*yield*/, items_2.next()];\n case 6:\n if (!(items_2_1 = _e.sent(), !items_2_1.done)) return [3 /*break*/, 13];\n item = items_2_1.value;\n if (!item) return [3 /*break*/, 12];\n key = void 0;\n if (!(typeof item === 'object')) return [3 /*break*/, 8];\n keyValues = this.getIndexKeyValuesFromModel(item);\n return [4 /*yield*/, store\n .index('byPk')\n .getKey(this.canonicalKeyPath(keyValues))];\n case 7:\n key = _e.sent();\n return [3 /*break*/, 10];\n case 8:\n itemKey = item.toString();\n return [4 /*yield*/, store.index('byPk').getKey(itemKey)];\n case 9:\n key = _e.sent();\n _e.label = 10;\n case 10:\n if (!(key !== undefined)) return [3 /*break*/, 12];\n return [4 /*yield*/, store.delete(key)];\n case 11:\n _e.sent();\n _e.label = 12;\n case 12: return [3 /*break*/, 5];\n case 13: return [3 /*break*/, 20];\n case 14:\n e_5_1 = _e.sent();\n e_5 = { error: e_5_1 };\n return [3 /*break*/, 20];\n case 15:\n _e.trys.push([15, , 18, 19]);\n if (!(items_2_1 && !items_2_1.done && (_b = items_2.return))) return [3 /*break*/, 17];\n return [4 /*yield*/, _b.call(items_2)];\n case 16:\n _e.sent();\n _e.label = 17;\n case 17: return [3 /*break*/, 19];\n case 18:\n if (e_5) throw e_5.error;\n return [7 /*endfinally*/];\n case 19: return [7 /*endfinally*/];\n case 20: return [3 /*break*/, 2];\n case 21: return [3 /*break*/, 28];\n case 22:\n e_4_1 = _e.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 28];\n case 23:\n _e.trys.push([23, , 26, 27]);\n if (!(_d && !_d.done && (_a = _c.return))) return [3 /*break*/, 25];\n return [4 /*yield*/, _a.call(_c)];\n case 24:\n _e.sent();\n _e.label = 25;\n case 25: return [3 /*break*/, 27];\n case 26:\n if (e_4) throw e_4.error;\n return [7 /*endfinally*/];\n case 27: return [7 /*endfinally*/];\n case 28: return [2 /*return*/];\n }\n });\n });\n };\n //#region platform-specific helper methods\n IndexedDBAdapter.prototype.checkPrivate = function () {\n return __awaiter(this, void 0, void 0, function () {\n var isPrivate;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, isPrivateMode().then(function (isPrivate) {\n return isPrivate;\n })];\n case 1:\n isPrivate = _a.sent();\n if (isPrivate) {\n logger.error(\"IndexedDB not supported in this browser's private mode\");\n return [2 /*return*/, Promise.reject(\"IndexedDB not supported in this browser's private mode\")];\n }\n else {\n return [2 /*return*/, Promise.resolve()];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Whether the browser's implementation of IndexedDB is coercing single-field\n * indexes to a scalar key.\n *\n * If this returns `true`, we need to treat indexes containing a single field\n * as scalars.\n *\n * See PR description for reference:\n * https://github.com/aws-amplify/amplify-js/pull/10527\n */\n IndexedDBAdapter.prototype.setSafariCompatabilityMode = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, isSafariCompatabilityMode()];\n case 1:\n _a.safariCompatabilityMode = _b.sent();\n if (this.safariCompatabilityMode === true) {\n logger.debug('IndexedDB Adapter is running in Safari Compatability Mode');\n }\n return [2 /*return*/];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.getNamespaceAndModelFromStorename = function (storeName) {\n var _a = __read(storeName.split('_')), namespaceName = _a[0], modelNameArr = _a.slice(1);\n return {\n namespaceName: namespaceName,\n modelName: modelNameArr.join('_'),\n };\n };\n IndexedDBAdapter.prototype.createObjectStoreForModel = function (db, namespaceName, storeName, modelName) {\n var store = db.createObjectStore(storeName, {\n autoIncrement: true,\n });\n var indexes = this.schema.namespaces[namespaceName].relationships[modelName].indexes;\n indexes.forEach(function (_a) {\n var _b = __read(_a, 3), idxName = _b[0], keyPath = _b[1], options = _b[2];\n store.createIndex(idxName, keyPath, options);\n });\n return store;\n };\n IndexedDBAdapter.prototype.getByKey = function (storeName, keyValue) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._get(storeName, keyValue)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.getAll = function (storeName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.db.getAll(storeName)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Tries to generate an index fetcher for the given predicates. Assumes\n * that the given predicate conditions are contained by an AND group and\n * should therefore all match a single record.\n *\n * @param storeName The table to query.\n * @param predicates The predicates to try to AND together.\n * @param transaction\n */\n IndexedDBAdapter.prototype.matchingIndexQueries = function (storeName, predicates, transaction) {\n var e_6, _a, e_7, _b;\n var _this = this;\n // could be expanded later to include `exec()` and a `cardinality` estimate?\n var queries = [];\n var predicateIndex = new Map();\n try {\n for (var predicates_1 = __values(predicates), predicates_1_1 = predicates_1.next(); !predicates_1_1.done; predicates_1_1 = predicates_1.next()) {\n var predicate = predicates_1_1.value;\n predicateIndex.set(String(predicate.field), predicate);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (predicates_1_1 && !predicates_1_1.done && (_a = predicates_1.return)) _a.call(predicates_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n var store = transaction.objectStore(storeName);\n var _loop_2 = function (name_1) {\n var e_8, _a;\n var idx = store.index(name_1);\n var keypath = Array.isArray(idx.keyPath) ? idx.keyPath : [idx.keyPath];\n var matchingPredicateValues = [];\n try {\n for (var keypath_1 = (e_8 = void 0, __values(keypath)), keypath_1_1 = keypath_1.next(); !keypath_1_1.done; keypath_1_1 = keypath_1.next()) {\n var field = keypath_1_1.value;\n var p = predicateIndex.get(field);\n if (p && p.operand !== null && p.operand !== undefined) {\n matchingPredicateValues.push(p.operand);\n }\n else {\n break;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (keypath_1_1 && !keypath_1_1.done && (_a = keypath_1.return)) _a.call(keypath_1);\n }\n finally { if (e_8) throw e_8.error; }\n }\n // if we have a matching predicate field for each component of this index,\n // we can build a query for it. otherwise, we can't.\n if (matchingPredicateValues.length === keypath.length) {\n // re-create a transaction, because the transaction used to fetch the\n // indexes may no longer be active.\n queries.push(function () {\n return _this.db\n .transaction(storeName)\n .objectStore(storeName)\n .index(name_1)\n .getAll(_this.canonicalKeyPath(matchingPredicateValues));\n });\n }\n };\n try {\n for (var _c = __values(store.indexNames), _d = _c.next(); !_d.done; _d = _c.next()) {\n var name_1 = _d.value;\n _loop_2(name_1);\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_7) throw e_7.error; }\n }\n return queries;\n };\n IndexedDBAdapter.prototype.baseQueryIndex = function (storeName, predicates, transaction) {\n return __awaiter(this, void 0, void 0, function () {\n var predicateObjs, type, fieldPredicates, txn, result, groupQueries, objectQueries, indexedQueries;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n predicateObjs = predicates.predicates, type = predicates.type;\n // the predicate objects we care about tend to be nested at least\n // one level down: `{and: {or: {and: { }}}}`\n // so, we unpack and/or groups until we find a group with more than 1\n // child OR a child that is not a group (and is therefore a predicate \"object\").\n while (predicateObjs.length === 1 &&\n isPredicateGroup(predicateObjs[0]) &&\n predicateObjs[0].type !== 'not') {\n type = predicateObjs[0].type;\n predicateObjs = predicateObjs[0].predicates;\n }\n fieldPredicates = predicateObjs.filter(function (p) { return isPredicateObj(p) && p.operator === 'eq'; });\n txn = transaction || this.db.transaction(storeName);\n result = {};\n if (!(type === 'or')) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.all(predicateObjs\n .filter(function (o) { return isPredicateGroup(o) && o.type === 'and'; })\n .map(function (o) {\n return _this.baseQueryIndex(storeName, o, txn);\n })).then(function (queries) {\n return queries\n .filter(function (q) { return q.indexedQueries.length === 1; })\n .map(function (i) { return i.indexedQueries; });\n })];\n case 1:\n groupQueries = _a.sent();\n objectQueries = predicateObjs\n .filter(function (o) { return isPredicateObj(o); })\n .map(function (o) {\n return _this.matchingIndexQueries(storeName, [o], txn);\n });\n indexedQueries = __spread(groupQueries, objectQueries).map(function (q) { return q[0]; })\n .filter(function (i) { return i; });\n // if, after hunting for base queries, we don't have exactly 1 base query\n // for each child group + object, stop trying to optimize. we're not dealing\n // with a simple query that fits the intended optimization path.\n if (predicateObjs.length > indexedQueries.length) {\n result = {\n groupType: null,\n indexedQueries: [],\n };\n }\n else {\n result = {\n groupType: 'or',\n indexedQueries: indexedQueries,\n };\n }\n return [3 /*break*/, 3];\n case 2:\n if (type === 'and') {\n // our potential indexes or lacks thereof.\n // note that we're only optimizing for `eq` right now.\n result = {\n groupType: type,\n indexedQueries: this.matchingIndexQueries(storeName, fieldPredicates, txn),\n };\n }\n else {\n result = {\n groupType: null,\n indexedQueries: [],\n };\n }\n _a.label = 3;\n case 3:\n if (!!transaction) return [3 /*break*/, 5];\n return [4 /*yield*/, txn.done];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [2 /*return*/, result];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.filterOnPredicate = function (storeName, predicates) {\n return __awaiter(this, void 0, void 0, function () {\n var predicateObjs, type, _a, groupType, indexedQueries, candidateResults, distinctResults, indexedQueries_1, indexedQueries_1_1, query, resultGroup, resultGroup_1, resultGroup_1_1, item, distinctificationString, e_9_1, filtered;\n var e_9, _b, e_10, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n predicateObjs = predicates.predicates, type = predicates.type;\n return [4 /*yield*/, this.baseQueryIndex(storeName, predicates)];\n case 1:\n _a = _d.sent(), groupType = _a.groupType, indexedQueries = _a.indexedQueries;\n if (!(groupType === 'and' && indexedQueries.length > 0)) return [3 /*break*/, 3];\n return [4 /*yield*/, indexedQueries[0]()];\n case 2:\n // each condition must be satsified, we can form a base set with any\n // ONE of those conditions and then filter.\n candidateResults = _d.sent();\n return [3 /*break*/, 14];\n case 3:\n if (!(groupType === 'or' &&\n indexedQueries.length > 0 &&\n indexedQueries.length <= MULTI_OR_CONDITION_SCAN_BREAKPOINT)) return [3 /*break*/, 12];\n distinctResults = new Map();\n _d.label = 4;\n case 4:\n _d.trys.push([4, 9, 10, 11]);\n indexedQueries_1 = __values(indexedQueries), indexedQueries_1_1 = indexedQueries_1.next();\n _d.label = 5;\n case 5:\n if (!!indexedQueries_1_1.done) return [3 /*break*/, 8];\n query = indexedQueries_1_1.value;\n return [4 /*yield*/, query()];\n case 6:\n resultGroup = _d.sent();\n try {\n for (resultGroup_1 = (e_10 = void 0, __values(resultGroup)), resultGroup_1_1 = resultGroup_1.next(); !resultGroup_1_1.done; resultGroup_1_1 = resultGroup_1.next()) {\n item = resultGroup_1_1.value;\n distinctificationString = JSON.stringify(item);\n distinctResults.set(distinctificationString, item);\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (resultGroup_1_1 && !resultGroup_1_1.done && (_c = resultGroup_1.return)) _c.call(resultGroup_1);\n }\n finally { if (e_10) throw e_10.error; }\n }\n _d.label = 7;\n case 7:\n indexedQueries_1_1 = indexedQueries_1.next();\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 11];\n case 9:\n e_9_1 = _d.sent();\n e_9 = { error: e_9_1 };\n return [3 /*break*/, 11];\n case 10:\n try {\n if (indexedQueries_1_1 && !indexedQueries_1_1.done && (_b = indexedQueries_1.return)) _b.call(indexedQueries_1);\n }\n finally { if (e_9) throw e_9.error; }\n return [7 /*endfinally*/];\n case 11:\n // we could conceivably check for special conditions and return early here.\n // but, this is simpler and has not yet had a measurable performance impact.\n candidateResults = Array.from(distinctResults.values());\n return [3 /*break*/, 14];\n case 12: return [4 /*yield*/, this.getAll(storeName)];\n case 13:\n // nothing intelligent we can do with `not` groups unless or until we start\n // smashing comparison operators against indexes -- at which point we could\n // perform some reversal here.\n candidateResults = (_d.sent());\n _d.label = 14;\n case 14:\n filtered = predicateObjs\n ? candidateResults.filter(function (m) { return validatePredicate(m, type, predicateObjs); })\n : candidateResults;\n return [2 /*return*/, filtered];\n }\n });\n });\n };\n IndexedDBAdapter.prototype.inMemoryPagination = function (records, pagination) {\n return inMemoryPagination(records, pagination);\n };\n IndexedDBAdapter.prototype.enginePagination = function (storeName, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var result, _a, page, _b, limit, initialRecord, cursor, pageResults, hasLimit;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!pagination) return [3 /*break*/, 7];\n _a = pagination.page, page = _a === void 0 ? 0 : _a, _b = pagination.limit, limit = _b === void 0 ? 0 : _b;\n initialRecord = Math.max(0, page * limit) || 0;\n return [4 /*yield*/, this.db\n .transaction(storeName)\n .objectStore(storeName)\n .openCursor()];\n case 1:\n cursor = _c.sent();\n if (!(cursor && initialRecord > 0)) return [3 /*break*/, 3];\n return [4 /*yield*/, cursor.advance(initialRecord)];\n case 2:\n _c.sent();\n _c.label = 3;\n case 3:\n pageResults = [];\n hasLimit = typeof limit === 'number' && limit > 0;\n _c.label = 4;\n case 4:\n if (!(cursor && cursor.value)) return [3 /*break*/, 6];\n pageResults.push(cursor.value);\n if (hasLimit && pageResults.length === limit) {\n return [3 /*break*/, 6];\n }\n return [4 /*yield*/, cursor.continue()];\n case 5:\n cursor = _c.sent();\n return [3 /*break*/, 4];\n case 6:\n result = pageResults;\n return [3 /*break*/, 9];\n case 7: return [4 /*yield*/, this.db.getAll(storeName)];\n case 8:\n result = (_c.sent());\n _c.label = 9;\n case 9: return [2 /*return*/, result];\n }\n });\n });\n };\n return IndexedDBAdapter;\n}(StorageAdapterBase));\nexport default new IndexedDBAdapter();\n//# sourceMappingURL=IndexedDBAdapter.js.map","import { __awaiter, __generator, __read } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar InMemoryStore = /** @class */ (function () {\n function InMemoryStore() {\n var _this = this;\n this.db = new Map();\n this.getAllKeys = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Array.from(this.db.keys())];\n });\n }); };\n this.multiGet = function (keys) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, keys.reduce(function (res, k) { return (res.push([k, _this.db.get(k)]), res); }, [])];\n });\n }); };\n this.multiRemove = function (keys, callback) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n keys.forEach(function (k) { return _this.db.delete(k); });\n typeof callback === 'function' && callback();\n return [2 /*return*/];\n });\n }); };\n this.multiSet = function (entries, callback) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n entries.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n _this.setItem(key, value);\n });\n typeof callback === 'function' && callback();\n return [2 /*return*/];\n });\n }); };\n this.setItem = function (key, value) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.db.set(key, value)];\n });\n }); };\n this.removeItem = function (key) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.db.delete(key)];\n });\n }); };\n this.getItem = function (key) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.db.get(key)];\n });\n }); };\n }\n return InMemoryStore;\n}());\nexport { InMemoryStore };\nexport function createInMemoryStore() {\n return new InMemoryStore();\n}\n//# sourceMappingURL=InMemoryStore.js.map","import { __awaiter, __generator, __read, __values } from \"tslib\";\nimport { OpType, QueryOne, } from '../../types';\nimport { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, indexNameFromKeys, monotonicUlidFactory, } from '../../util';\nimport { createInMemoryStore } from './InMemoryStore';\nvar DB_NAME = '@AmplifyDatastore';\nvar COLLECTION = 'Collection';\nvar DATA = 'Data';\nvar monotonicFactoriesMap = new Map();\nvar AsyncStorageDatabase = /** @class */ (function () {\n function AsyncStorageDatabase() {\n /**\n * Maps storeNames to a map of ulid->id\n */\n this._collectionInMemoryIndex = new Map();\n this.storage = createInMemoryStore();\n }\n /**\n * Collection index is map of stores (i.e. sync, metadata, mutation event, and data)\n * @param storeName {string} - Name of the store\n * @returns Map of ulid->id\n */\n AsyncStorageDatabase.prototype.getCollectionIndex = function (storeName) {\n if (!this._collectionInMemoryIndex.has(storeName)) {\n this._collectionInMemoryIndex.set(storeName, new Map());\n }\n return this._collectionInMemoryIndex.get(storeName);\n };\n /**\n * Return ULID for store if it exists, otherwise create a new one\n * @param storeName {string} - Name of the store\n * @returns ulid\n */\n AsyncStorageDatabase.prototype.getMonotonicFactory = function (storeName) {\n if (!monotonicFactoriesMap.has(storeName)) {\n monotonicFactoriesMap.set(storeName, monotonicUlidFactory());\n }\n return monotonicFactoriesMap.get(storeName);\n };\n AsyncStorageDatabase.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var allKeys, keysForCollectionEntries, allKeys_1, allKeys_1_1, key, _a, dbName, storeName, recordType, ulidOrId, id, ulid, id_1, newUlid, oldKey, newKey, item, e_1_1;\n var e_1, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this._collectionInMemoryIndex.clear();\n return [4 /*yield*/, this.storage.getAllKeys()];\n case 1:\n allKeys = _c.sent();\n keysForCollectionEntries = [];\n _c.label = 2;\n case 2:\n _c.trys.push([2, 12, 13, 14]);\n allKeys_1 = __values(allKeys), allKeys_1_1 = allKeys_1.next();\n _c.label = 3;\n case 3:\n if (!!allKeys_1_1.done) return [3 /*break*/, 11];\n key = allKeys_1_1.value;\n _a = __read(key.split('::'), 5), dbName = _a[0], storeName = _a[1], recordType = _a[2], ulidOrId = _a[3], id = _a[4];\n if (!(dbName === DB_NAME)) return [3 /*break*/, 10];\n if (!(recordType === DATA)) return [3 /*break*/, 9];\n ulid = void 0;\n if (!(id === undefined)) return [3 /*break*/, 7];\n id_1 = ulidOrId;\n newUlid = this.getMonotonicFactory(storeName)();\n oldKey = this.getLegacyKeyForItem(storeName, id_1);\n newKey = this.getKeyForItem(storeName, id_1, newUlid);\n return [4 /*yield*/, this.storage.getItem(oldKey)];\n case 4:\n item = _c.sent();\n return [4 /*yield*/, this.storage.setItem(newKey, item)];\n case 5:\n _c.sent();\n return [4 /*yield*/, this.storage.removeItem(oldKey)];\n case 6:\n _c.sent();\n ulid = newUlid;\n return [3 /*break*/, 8];\n case 7:\n ulid = ulidOrId;\n _c.label = 8;\n case 8:\n this.getCollectionIndex(storeName).set(id, ulid);\n return [3 /*break*/, 10];\n case 9:\n if (recordType === COLLECTION) {\n keysForCollectionEntries.push(key);\n }\n _c.label = 10;\n case 10:\n allKeys_1_1 = allKeys_1.next();\n return [3 /*break*/, 3];\n case 11: return [3 /*break*/, 14];\n case 12:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 14];\n case 13:\n try {\n if (allKeys_1_1 && !allKeys_1_1.done && (_b = allKeys_1.return)) _b.call(allKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 14:\n if (!(keysForCollectionEntries.length > 0)) return [3 /*break*/, 16];\n return [4 /*yield*/, this.storage.multiRemove(keysForCollectionEntries)];\n case 15:\n _c.sent();\n _c.label = 16;\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.save = function (item, storeName, keys, keyValuesPath) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var idxName, ulid, itemKey;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n idxName = indexNameFromKeys(keys);\n ulid = ((_a = this.getCollectionIndex(storeName)) === null || _a === void 0 ? void 0 : _a.get(idxName)) ||\n this.getMonotonicFactory(storeName)();\n itemKey = this.getKeyForItem(storeName, keyValuesPath, ulid);\n // Set key in collection index\n (_b = this.getCollectionIndex(storeName)) === null || _b === void 0 ? void 0 : _b.set(keyValuesPath, ulid);\n // Save item in db\n return [4 /*yield*/, this.storage.setItem(itemKey, JSON.stringify(item))];\n case 1:\n // Save item in db\n _c.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.batchSave = function (storeName, items, keys) {\n return __awaiter(this, void 0, void 0, function () {\n var result, collection, keysToDelete, keysToSave, allItemsKeys, itemsMap, _loop_1, this_1, items_1, items_1_1, item, existingRecordsMap, existingRecordsKeys, allItemsKeys_1, allItemsKeys_1_1, key;\n var e_2, _a, e_3, _b;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (items.length === 0) {\n return [2 /*return*/, []];\n }\n result = [];\n collection = this.getCollectionIndex(storeName);\n keysToDelete = new Set();\n keysToSave = new Set();\n allItemsKeys = [];\n itemsMap = {};\n _loop_1 = function (item) {\n // Extract keys from concatenated key path, map to item values\n var keyValues = keys.map(function (field) { return item[field]; });\n var _deleted = item._deleted;\n // If id is in the store, retrieve, otherwise generate new ULID\n var ulid = collection.get(keyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)) ||\n this_1.getMonotonicFactory(storeName)();\n // Generate the \"longer key\" for the item\n var key = this_1.getKeyForItem(storeName, keyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR), ulid);\n allItemsKeys.push(key);\n itemsMap[key] = { ulid: ulid, model: item };\n if (_deleted) {\n keysToDelete.add(key);\n }\n else {\n keysToSave.add(key);\n }\n };\n this_1 = this;\n try {\n /* Populate allItemKeys, keysToDelete, and keysToSave */\n for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n item = items_1_1.value;\n _loop_1(item);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return [4 /*yield*/, this.storage.multiGet(allItemsKeys)];\n case 1:\n existingRecordsMap = _c.sent();\n existingRecordsKeys = existingRecordsMap\n .filter(function (_a) {\n var _b = __read(_a, 2), v = _b[1];\n return !!v;\n })\n .reduce(function (set, _a) {\n var _b = __read(_a, 1), k = _b[0];\n return set.add(k);\n }, new Set());\n // Delete\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n if (keysToDelete.size === 0) {\n resolve();\n return;\n }\n var keysToDeleteArray = Array.from(keysToDelete);\n keysToDeleteArray.forEach(function (key) {\n // key: full db key\n // keys: PK and/or SK keys\n var primaryKeyValues = keys\n .map(function (field) { return itemsMap[key].model[field]; })\n .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.delete(primaryKeyValues);\n });\n _this.storage.multiRemove(keysToDeleteArray, function (errors) {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n })];\n case 2:\n // Delete\n _c.sent();\n // Save\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n if (keysToSave.size === 0) {\n resolve();\n return;\n }\n var entriesToSet = Array.from(keysToSave).map(function (key) { return [\n key,\n JSON.stringify(itemsMap[key].model),\n ]; });\n keysToSave.forEach(function (key) {\n var _a = itemsMap[key], model = _a.model, ulid = _a.ulid;\n // Retrieve values from model, use as key for collection index\n var keyValues = keys\n .map(function (field) { return model[field]; })\n .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.set(keyValues, ulid);\n });\n _this.storage.multiSet(entriesToSet, function (errors) {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n })];\n case 3:\n // Save\n _c.sent();\n try {\n for (allItemsKeys_1 = __values(allItemsKeys), allItemsKeys_1_1 = allItemsKeys_1.next(); !allItemsKeys_1_1.done; allItemsKeys_1_1 = allItemsKeys_1.next()) {\n key = allItemsKeys_1_1.value;\n if (keysToDelete.has(key) && existingRecordsKeys.has(key)) {\n result.push([itemsMap[key].model, OpType.DELETE]);\n }\n else if (keysToSave.has(key)) {\n result.push([\n itemsMap[key].model,\n existingRecordsKeys.has(key) ? OpType.UPDATE : OpType.INSERT,\n ]);\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (allItemsKeys_1_1 && !allItemsKeys_1_1.done && (_b = allItemsKeys_1.return)) _b.call(allItemsKeys_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.get = function (keyValuePath, storeName) {\n return __awaiter(this, void 0, void 0, function () {\n var ulid, itemKey, recordAsString, record;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ulid = this.getCollectionIndex(storeName).get(keyValuePath);\n itemKey = this.getKeyForItem(storeName, keyValuePath, ulid);\n return [4 /*yield*/, this.storage.getItem(itemKey)];\n case 1:\n recordAsString = _a.sent();\n record = recordAsString && JSON.parse(recordAsString);\n return [2 /*return*/, record];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.getOne = function (firstOrLast, storeName) {\n return __awaiter(this, void 0, void 0, function () {\n var collection, _a, itemId, ulid, itemKey, itemString, _b, result;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n collection = this.getCollectionIndex(storeName);\n _a = __read(firstOrLast === QueryOne.FIRST\n ? (function () {\n var e_4, _a, _b;\n var id, ulid;\n try {\n for (var collection_1 = __values(collection), collection_1_1 = collection_1.next(); !collection_1_1.done; collection_1_1 = collection_1.next()) {\n _b = __read(collection_1_1.value, 2), id = _b[0], ulid = _b[1];\n break;\n } // Get first element of the set\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (collection_1_1 && !collection_1_1.done && (_a = collection_1.return)) _a.call(collection_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return [id, ulid];\n })()\n : (function () {\n var e_5, _a, _b;\n var id, ulid;\n try {\n for (var collection_2 = __values(collection), collection_2_1 = collection_2.next(); !collection_2_1.done; collection_2_1 = collection_2.next()) {\n _b = __read(collection_2_1.value, 2), id = _b[0], ulid = _b[1];\n ;\n } // Get last element of the set\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (collection_2_1 && !collection_2_1.done && (_a = collection_2.return)) _a.call(collection_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return [id, ulid];\n })(), 2), itemId = _a[0], ulid = _a[1];\n itemKey = this.getKeyForItem(storeName, itemId, ulid);\n _b = itemKey;\n if (!_b) return [3 /*break*/, 2];\n return [4 /*yield*/, this.storage.getItem(itemKey)];\n case 1:\n _b = (_c.sent());\n _c.label = 2;\n case 2:\n itemString = _b;\n result = itemString ? JSON.parse(itemString) || undefined : undefined;\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * This function gets all the records stored in async storage for a particular storeName\n * It then loads all the records for that filtered set of keys using multiGet()\n */\n AsyncStorageDatabase.prototype.getAll = function (storeName, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var collection, _a, _b, page, _c, limit, start, end, keysForStore, count, collection_3, collection_3_1, _d, id, ulid, storeRecordStrings, records;\n var e_6, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n collection = this.getCollectionIndex(storeName);\n _a = pagination || {}, _b = _a.page, page = _b === void 0 ? 0 : _b, _c = _a.limit, limit = _c === void 0 ? 0 : _c;\n start = Math.max(0, page * limit) || 0;\n end = limit > 0 ? start + limit : undefined;\n keysForStore = [];\n count = 0;\n try {\n for (collection_3 = __values(collection), collection_3_1 = collection_3.next(); !collection_3_1.done; collection_3_1 = collection_3.next()) {\n _d = __read(collection_3_1.value, 2), id = _d[0], ulid = _d[1];\n count++;\n if (count <= start) {\n continue;\n }\n keysForStore.push(this.getKeyForItem(storeName, id, ulid));\n if (count === end) {\n break;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (collection_3_1 && !collection_3_1.done && (_e = collection_3.return)) _e.call(collection_3);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return [4 /*yield*/, this.storage.multiGet(keysForStore)];\n case 1:\n storeRecordStrings = _f.sent();\n records = storeRecordStrings\n .filter(function (_a) {\n var _b = __read(_a, 2), value = _b[1];\n return value;\n })\n .map(function (_a) {\n var _b = __read(_a, 2), value = _b[1];\n return JSON.parse(value);\n });\n return [2 /*return*/, records];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.delete = function (key, storeName) {\n return __awaiter(this, void 0, void 0, function () {\n var ulid, itemKey;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ulid = this.getCollectionIndex(storeName).get(key);\n itemKey = this.getKeyForItem(storeName, key, ulid);\n this.getCollectionIndex(storeName).delete(key);\n return [4 /*yield*/, this.storage.removeItem(itemKey)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Clear the AsyncStorage of all DataStore entries\n */\n AsyncStorageDatabase.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n var allKeys, allDataStoreKeys;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.storage.getAllKeys()];\n case 1:\n allKeys = _a.sent();\n allDataStoreKeys = allKeys.filter(function (key) { return key.startsWith(DB_NAME); });\n return [4 /*yield*/, this.storage.multiRemove(allDataStoreKeys)];\n case 2:\n _a.sent();\n this._collectionInMemoryIndex.clear();\n return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageDatabase.prototype.getKeyForItem = function (storeName, id, ulid) {\n return this.getKeyPrefixForStoreItems(storeName) + \"::\" + ulid + \"::\" + id;\n };\n AsyncStorageDatabase.prototype.getLegacyKeyForItem = function (storeName, id) {\n return this.getKeyPrefixForStoreItems(storeName) + \"::\" + id;\n };\n AsyncStorageDatabase.prototype.getKeyPrefixForStoreItems = function (storeName) {\n return DB_NAME + \"::\" + storeName + \"::\" + DATA;\n };\n return AsyncStorageDatabase;\n}());\nexport default AsyncStorageDatabase;\n//# sourceMappingURL=AsyncStorageDatabase.js.map","import { __asyncValues, __awaiter, __extends, __generator, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport AsyncStorageDatabase from './AsyncStorageDatabase';\nimport { OpType, QueryOne, } from '../../types';\nimport { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, traverseModel, validatePredicate, inMemoryPagination, keysEqual, getStorename, getIndexKeys, } from '../../util';\nimport { StorageAdapterBase } from './StorageAdapterBase';\nvar AsyncStorageAdapter = /** @class */ (function (_super) {\n __extends(AsyncStorageAdapter, _super);\n function AsyncStorageAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // no-ops for this adapter\n AsyncStorageAdapter.prototype.preSetUpChecks = function () {\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); });\n };\n AsyncStorageAdapter.prototype.preOpCheck = function () {\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); });\n };\n /**\n * Open AsyncStorage database\n * Create new DB if one doesn't exist\n *\n * Called by `StorageAdapterBase.setUp()`\n *\n * @returns AsyncStorageDatabase instance\n */\n AsyncStorageAdapter.prototype.initDb = function () {\n return __awaiter(this, void 0, void 0, function () {\n var db;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n db = new AsyncStorageDatabase();\n return [4 /*yield*/, db.init()];\n case 1:\n _a.sent();\n return [2 /*return*/, db];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.db.clear()];\n case 1:\n _a.sent();\n this.db = undefined;\n this.initPromise = undefined;\n return [2 /*return*/];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.batchSave = function (modelConstructor, items) {\n return __awaiter(this, void 0, void 0, function () {\n var modelName, namespaceName, storeName, keys, batch, _loop_1, this_1, items_1, items_1_1, item;\n var e_1, _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (items.length === 0) {\n return [2 /*return*/, []];\n }\n modelName = modelConstructor.name;\n namespaceName = this.namespaceResolver(modelConstructor);\n storeName = getStorename(namespaceName, modelName);\n keys = getIndexKeys(this.schema.namespaces[namespaceName], modelName);\n batch = [];\n _loop_1 = function (item) {\n var model = this_1.modelInstanceCreator(modelConstructor, item);\n var connectedModels = traverseModel(modelName, model, this_1.schema.namespaces[namespaceName], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);\n var keyValuesPath = this_1.getIndexKeyValuesPath(model);\n var instance = connectedModels.find(function (_a) {\n var instance = _a.instance;\n var instanceKeyValuesPath = _this.getIndexKeyValuesPath(instance);\n return keysEqual([instanceKeyValuesPath], [keyValuesPath]);\n }).instance;\n batch.push(instance);\n };\n this_1 = this;\n try {\n for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n item = items_1_1.value;\n _loop_1(item);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [4 /*yield*/, this.db.batchSave(storeName, batch, keys)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype._get = function (storeName, keyArr) {\n return __awaiter(this, void 0, void 0, function () {\n var itemKeyValuesPath;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n itemKeyValuesPath = keyArr.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return [4 /*yield*/, this.db.get(itemKeyValuesPath, storeName)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.save = function (model, condition) {\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var _b, storeName, connectionStoreNames, modelKeyValues, fromDB, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, itemKeyValues, fromDB_1, opType, e_2_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = this.saveMetadata(model), storeName = _b.storeName, connectionStoreNames = _b.connectionStoreNames, modelKeyValues = _b.modelKeyValues;\n return [4 /*yield*/, this._get(storeName, modelKeyValues)];\n case 1:\n fromDB = _c.sent();\n this.validateSaveCondition(condition, fromDB);\n result = [];\n _c.label = 2;\n case 2:\n _c.trys.push([2, 9, 10, 15]);\n connectionStoreNames_1 = __asyncValues(connectionStoreNames);\n _c.label = 3;\n case 3: return [4 /*yield*/, connectionStoreNames_1.next()];\n case 4:\n if (!(connectionStoreNames_1_1 = _c.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 8];\n resItem = connectionStoreNames_1_1.value;\n storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;\n itemKeyValues = keys.map(function (key) { return item[key]; });\n return [4 /*yield*/, this._get(storeName_1, itemKeyValues)];\n case 5:\n fromDB_1 = _c.sent();\n opType = fromDB_1 ? OpType.UPDATE : OpType.INSERT;\n if (!(keysEqual(itemKeyValues, modelKeyValues) ||\n opType === OpType.INSERT)) return [3 /*break*/, 7];\n return [4 /*yield*/, this.db.save(item, storeName_1, keys, itemKeyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR))];\n case 6:\n _c.sent();\n result.push([instance, opType]);\n _c.label = 7;\n case 7: return [3 /*break*/, 3];\n case 8: return [3 /*break*/, 15];\n case 9:\n e_2_1 = _c.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 15];\n case 10:\n _c.trys.push([10, , 13, 14]);\n if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 12];\n return [4 /*yield*/, _a.call(connectionStoreNames_1)];\n case 11:\n _c.sent();\n _c.label = 12;\n case 12: return [3 /*break*/, 14];\n case 13:\n if (e_2) throw e_2.error;\n return [7 /*endfinally*/];\n case 14: return [7 /*endfinally*/];\n case 15: return [2 /*return*/, result];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, storeName, namespaceName, queryByKey, predicates, hasSort, hasPagination, records;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.queryMetadata(modelConstructor, predicate, pagination), storeName = _a.storeName, namespaceName = _a.namespaceName, queryByKey = _a.queryByKey, predicates = _a.predicates, hasSort = _a.hasSort, hasPagination = _a.hasPagination;\n return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {\n var keyValues, record, filtered, all;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!queryByKey) return [3 /*break*/, 2];\n keyValues = queryByKey.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return [4 /*yield*/, this.getByKey(storeName, keyValues)];\n case 1:\n record = _a.sent();\n return [2 /*return*/, record ? [record] : []];\n case 2:\n if (!predicates) return [3 /*break*/, 4];\n return [4 /*yield*/, this.filterOnPredicate(storeName, predicates)];\n case 3:\n filtered = _a.sent();\n return [2 /*return*/, this.inMemoryPagination(filtered, pagination)];\n case 4:\n if (!(hasSort || hasPagination)) return [3 /*break*/, 6];\n return [4 /*yield*/, this.getAll(storeName)];\n case 5:\n all = _a.sent();\n return [2 /*return*/, this.inMemoryPagination(all, pagination)];\n case 6: return [2 /*return*/, this.getAll(storeName)];\n }\n });\n }); })()];\n case 1:\n records = (_b.sent());\n return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];\n case 2: return [2 /*return*/, _b.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.getByKey = function (storeName, keyValuePath) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.db.get(keyValuePath, storeName)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.getAll = function (storeName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.db.getAll(storeName)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.filterOnPredicate = function (storeName, predicates) {\n return __awaiter(this, void 0, void 0, function () {\n var predicateObjs, type, all, filtered;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n predicateObjs = predicates.predicates, type = predicates.type;\n return [4 /*yield*/, this.getAll(storeName)];\n case 1:\n all = _a.sent();\n filtered = predicateObjs\n ? all.filter(function (m) { return validatePredicate(m, type, predicateObjs); })\n : all;\n return [2 /*return*/, filtered];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.inMemoryPagination = function (records, pagination) {\n return inMemoryPagination(records, pagination);\n };\n AsyncStorageAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {\n if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }\n return __awaiter(this, void 0, void 0, function () {\n var storeName, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n storeName = this.getStorenameForModel(modelConstructor);\n return [4 /*yield*/, this.db.getOne(firstOrLast, storeName)];\n case 1:\n result = _a.sent();\n return [2 /*return*/, result && this.modelInstanceCreator(modelConstructor, result)];\n }\n });\n });\n };\n AsyncStorageAdapter.prototype.deleteItem = function (deleteQueue) {\n var e_3, _a, e_4, _b;\n return __awaiter(this, void 0, void 0, function () {\n var _c, _d, deleteItem, storeName, items, items_2, items_2_1, item, keyValuesPath, e_4_1, e_3_1;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 17, 18, 23]);\n _c = __asyncValues(deleteQueue);\n _e.label = 1;\n case 1: return [4 /*yield*/, _c.next()];\n case 2:\n if (!(_d = _e.sent(), !_d.done)) return [3 /*break*/, 16];\n deleteItem = _d.value;\n storeName = deleteItem.storeName, items = deleteItem.items;\n _e.label = 3;\n case 3:\n _e.trys.push([3, 9, 10, 15]);\n items_2 = __asyncValues(items);\n _e.label = 4;\n case 4: return [4 /*yield*/, items_2.next()];\n case 5:\n if (!(items_2_1 = _e.sent(), !items_2_1.done)) return [3 /*break*/, 8];\n item = items_2_1.value;\n if (!item) return [3 /*break*/, 7];\n if (!(typeof item === 'object')) return [3 /*break*/, 7];\n keyValuesPath = this.getIndexKeyValuesPath(item);\n return [4 /*yield*/, this.db.delete(keyValuesPath, storeName)];\n case 6:\n _e.sent();\n _e.label = 7;\n case 7: return [3 /*break*/, 4];\n case 8: return [3 /*break*/, 15];\n case 9:\n e_4_1 = _e.sent();\n e_4 = { error: e_4_1 };\n return [3 /*break*/, 15];\n case 10:\n _e.trys.push([10, , 13, 14]);\n if (!(items_2_1 && !items_2_1.done && (_b = items_2.return))) return [3 /*break*/, 12];\n return [4 /*yield*/, _b.call(items_2)];\n case 11:\n _e.sent();\n _e.label = 12;\n case 12: return [3 /*break*/, 14];\n case 13:\n if (e_4) throw e_4.error;\n return [7 /*endfinally*/];\n case 14: return [7 /*endfinally*/];\n case 15: return [3 /*break*/, 1];\n case 16: return [3 /*break*/, 23];\n case 17:\n e_3_1 = _e.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 23];\n case 18:\n _e.trys.push([18, , 21, 22]);\n if (!(_d && !_d.done && (_a = _c.return))) return [3 /*break*/, 20];\n return [4 /*yield*/, _a.call(_c)];\n case 19:\n _e.sent();\n _e.label = 20;\n case 20: return [3 /*break*/, 22];\n case 21:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 22: return [7 /*endfinally*/];\n case 23: return [2 /*return*/];\n }\n });\n });\n };\n //#region platform-specific helper methods\n /**\n * Retrieves concatenated primary key values from a model\n *\n * @param model\n * @returns\n */\n AsyncStorageAdapter.prototype.getIndexKeyValuesPath = function (model) {\n return this.getIndexKeyValuesFromModel(model).join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n };\n return AsyncStorageAdapter;\n}(StorageAdapterBase));\nexport { AsyncStorageAdapter };\nexport default new AsyncStorageAdapter();\n//# sourceMappingURL=AsyncStorageAdapter.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport IndexedDBAdapter from '../IndexedDBAdapter';\nimport AsyncStorageAdapter from '../AsyncStorageAdapter';\nvar getDefaultAdapter = function () {\n var isBrowser = browserOrNode().isBrowser;\n if ((isBrowser && window.indexedDB) || (isWebWorker() && self.indexedDB)) {\n return IndexedDBAdapter;\n }\n return AsyncStorageAdapter;\n};\nexport default getDefaultAdapter;\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator, __read, __rest, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Logger, Mutex } from '@aws-amplify/core';\nimport PushStream from 'zen-push';\nimport { ModelPredicateCreator } from '../predicates';\nimport { OpType, QueryOne, isTargetNameAssociation, } from '../types';\nimport { isModelConstructor, STORAGE, validatePredicate, valuesEqual, } from '../util';\nimport { getIdentifierValue } from '../sync/utils';\nimport getDefaultAdapter from './adapter/getDefaultAdapter';\nvar logger = new Logger('DataStore');\nvar StorageClass = /** @class */ (function () {\n function StorageClass(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId) {\n this.schema = schema;\n this.namespaceResolver = namespaceResolver;\n this.getModelConstructorByModelName = getModelConstructorByModelName;\n this.modelInstanceCreator = modelInstanceCreator;\n this.adapter = adapter;\n this.sessionId = sessionId;\n this.adapter = this.adapter || getDefaultAdapter();\n this.pushStream = new PushStream();\n }\n StorageClass.getNamespace = function () {\n var namespace = {\n name: STORAGE,\n relationships: {},\n enums: {},\n models: {},\n nonModels: {},\n };\n return namespace;\n };\n StorageClass.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resolve, reject;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.initialized !== undefined)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.initialized];\n case 1:\n _a.sent();\n return [2 /*return*/];\n case 2:\n logger.debug('Starting Storage');\n this.initialized = new Promise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n this.adapter.setUp(this.schema, this.namespaceResolver, this.modelInstanceCreator, this.getModelConstructorByModelName, this.sessionId).then(resolve, reject);\n return [4 /*yield*/, this.initialized];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n StorageClass.prototype.save = function (model, condition, mutator, patchesTuple) {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.save(model, condition)];\n case 2:\n result = _a.sent();\n result.forEach(function (r) {\n var _a = __read(r, 2), savedElement = _a[0], opType = _a[1];\n // truthy when save is called by the Merger\n var syncResponse = !!mutator;\n var updateMutationInput;\n // don't attempt to calc mutation input when storage.save\n // is called by Merger, i.e., when processing an AppSync response\n if ((opType === OpType.UPDATE || opType === OpType.INSERT) &&\n !syncResponse) {\n //\n // TODO: LOOK!!!\n // the `model` used here is in effect regardless of what model\n // comes back from adapter.save().\n // Prior to fix, SQLite adapter had been returning two models\n // of different types, resulting in invalid outbox entries.\n //\n // the bug is essentially fixed in SQLite adapter.\n // leaving as-is, because it's currently unclear whether anything\n // depends on this remaining as-is.\n //\n updateMutationInput = _this.getChangedFieldsInput(model, savedElement, patchesTuple);\n // // an update without changed user fields\n // => don't create mutationEvent\n if (updateMutationInput === null) {\n return result;\n }\n }\n var element = updateMutationInput || savedElement;\n var modelConstructor = Object.getPrototypeOf(savedElement)\n .constructor;\n _this.pushStream.next({\n model: modelConstructor,\n opType: opType,\n element: element,\n mutator: mutator,\n condition: (condition &&\n ModelPredicateCreator.getPredicates(condition, false)) ||\n null,\n savedElement: savedElement,\n });\n });\n return [2 /*return*/, result];\n }\n });\n });\n };\n StorageClass.prototype.delete = function (modelOrModelConstructor, condition, mutator) {\n return __awaiter(this, void 0, void 0, function () {\n var models, deleted, modelConstructor, namespaceName, modelDefinition, modelIds;\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.init()];\n case 1:\n _b.sent();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.delete(modelOrModelConstructor, condition)];\n case 2:\n _a = __read.apply(void 0, [_b.sent(), 2]), models = _a[0], deleted = _a[1];\n modelConstructor = isModelConstructor(modelOrModelConstructor)\n ? modelOrModelConstructor\n : Object.getPrototypeOf(modelOrModelConstructor || {})\n .constructor;\n namespaceName = this.namespaceResolver(modelConstructor);\n modelDefinition = this.schema.namespaces[namespaceName].models[modelConstructor.name];\n modelIds = new Set(models.map(function (model) {\n var modelId = getIdentifierValue(modelDefinition, model);\n return modelId;\n }));\n if (!isModelConstructor(modelOrModelConstructor) &&\n !Array.isArray(deleted)) {\n deleted = [deleted];\n }\n deleted.forEach(function (model) {\n var modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n var theCondition;\n if (!isModelConstructor(modelOrModelConstructor)) {\n var modelId = getIdentifierValue(modelDefinition, model);\n theCondition = modelIds.has(modelId)\n ? ModelPredicateCreator.getPredicates(condition, false)\n : undefined;\n }\n _this.pushStream.next({\n model: modelConstructor,\n opType: OpType.DELETE,\n element: model,\n mutator: mutator,\n condition: theCondition || null,\n });\n });\n return [2 /*return*/, [models, deleted]];\n }\n });\n });\n };\n StorageClass.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.query(modelConstructor, predicate, pagination)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n StorageClass.prototype.queryOne = function (modelConstructor, firstOrLast) {\n if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.queryOne(modelConstructor, firstOrLast)];\n case 2: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n StorageClass.prototype.observe = function (modelConstructor, predicate, skipOwn) {\n var listenToAll = !modelConstructor;\n var _a = (predicate && ModelPredicateCreator.getPredicates(predicate, false)) ||\n {}, predicates = _a.predicates, type = _a.type;\n var result = this.pushStream.observable\n .filter(function (_a) {\n var mutator = _a.mutator;\n return !skipOwn || mutator !== skipOwn;\n })\n .map(function (_a) {\n var _mutator = _a.mutator, message = __rest(_a, [\"mutator\"]);\n return message;\n });\n if (!listenToAll) {\n result = result.filter(function (_a) {\n var model = _a.model, element = _a.element;\n if (modelConstructor !== model) {\n return false;\n }\n if (!!predicates && !!type) {\n return validatePredicate(element, type, predicates);\n }\n return true;\n });\n }\n return result;\n };\n StorageClass.prototype.clear = function (completeObservable) {\n if (completeObservable === void 0) { completeObservable = true; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.initialized = undefined;\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.clear()];\n case 1:\n _a.sent();\n if (completeObservable) {\n this.pushStream.complete();\n }\n return [2 /*return*/];\n }\n });\n });\n };\n StorageClass.prototype.batchSave = function (modelConstructor, items, mutator) {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return [4 /*yield*/, this.adapter.batchSave(modelConstructor, items)];\n case 2:\n result = _a.sent();\n result.forEach(function (_a) {\n var _b = __read(_a, 2), element = _b[0], opType = _b[1];\n _this.pushStream.next({\n model: modelConstructor,\n opType: opType,\n element: element,\n mutator: mutator,\n condition: null,\n });\n });\n return [2 /*return*/, result];\n }\n });\n });\n };\n // returns null if no user fields were changed (determined by value comparison)\n StorageClass.prototype.getChangedFieldsInput = function (model, originalElement, patchesTuple) {\n var e_1, _a;\n var _b;\n var containsPatches = patchesTuple && patchesTuple.length;\n if (!containsPatches) {\n return null;\n }\n var _c = __read(patchesTuple, 2), patches = _c[0], source = _c[1];\n var updatedElement = {};\n // extract array of updated fields from patches\n var updatedFields = (patches.map(function (patch) { return patch.path && patch.path[0]; }));\n // check model def for association and replace with targetName if exists\n var modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n var namespace = this.namespaceResolver(modelConstructor);\n var fields = this.schema.namespaces[namespace].models[modelConstructor.name].fields;\n var _d = ((_b = this.schema.namespaces[namespace].keys) === null || _b === void 0 ? void 0 : _b[modelConstructor.name]) || {}, primaryKey = _d.primaryKey, _e = _d.compositeKeys, compositeKeys = _e === void 0 ? [] : _e;\n // set original values for these fields\n updatedFields.forEach(function (field) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;\n var _f;\n var targetNames = isTargetNameAssociation((_f = fields[field]) === null || _f === void 0 ? void 0 : _f.association);\n if (Array.isArray(targetNames)) {\n try {\n // if field refers to a belongsTo relation, use the target field instead\n for (var targetNames_1 = __values(targetNames), targetNames_1_1 = targetNames_1.next(); !targetNames_1_1.done; targetNames_1_1 = targetNames_1.next()) {\n var targetName = targetNames_1_1.value;\n // check field values by value. Ignore unchanged fields\n if (!valuesEqual(source[targetName], originalElement[targetName])) {\n // if the field was updated to 'undefined', replace with 'null' for compatibility with JSON and GraphQL\n updatedElement[targetName] =\n originalElement[targetName] === undefined\n ? null\n : originalElement[targetName];\n try {\n for (var compositeKeys_1 = (e_3 = void 0, __values(compositeKeys)), compositeKeys_1_1 = compositeKeys_1.next(); !compositeKeys_1_1.done; compositeKeys_1_1 = compositeKeys_1.next()) {\n var fieldSet = compositeKeys_1_1.value;\n // include all of the fields that comprise the composite key\n if (fieldSet.has(targetName)) {\n try {\n for (var fieldSet_1 = (e_4 = void 0, __values(fieldSet)), fieldSet_1_1 = fieldSet_1.next(); !fieldSet_1_1.done; fieldSet_1_1 = fieldSet_1.next()) {\n var compositeField = fieldSet_1_1.value;\n updatedElement[compositeField] =\n originalElement[compositeField];\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (fieldSet_1_1 && !fieldSet_1_1.done && (_c = fieldSet_1.return)) _c.call(fieldSet_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (compositeKeys_1_1 && !compositeKeys_1_1.done && (_b = compositeKeys_1.return)) _b.call(compositeKeys_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (targetNames_1_1 && !targetNames_1_1.done && (_a = targetNames_1.return)) _a.call(targetNames_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n // Backwards compatibility pre-CPK\n // if field refers to a belongsTo relation, use the target field instead\n var key = targetNames || field;\n // check field values by value. Ignore unchanged fields\n if (!valuesEqual(source[key], originalElement[key])) {\n // if the field was updated to 'undefined', replace with 'null' for compatibility with JSON and GraphQL\n updatedElement[key] =\n originalElement[key] === undefined ? null : originalElement[key];\n try {\n for (var compositeKeys_2 = __values(compositeKeys), compositeKeys_2_1 = compositeKeys_2.next(); !compositeKeys_2_1.done; compositeKeys_2_1 = compositeKeys_2.next()) {\n var fieldSet = compositeKeys_2_1.value;\n // include all of the fields that comprise the composite key\n if (fieldSet.has(key)) {\n try {\n for (var fieldSet_2 = (e_6 = void 0, __values(fieldSet)), fieldSet_2_1 = fieldSet_2.next(); !fieldSet_2_1.done; fieldSet_2_1 = fieldSet_2.next()) {\n var compositeField = fieldSet_2_1.value;\n updatedElement[compositeField] =\n originalElement[compositeField];\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (fieldSet_2_1 && !fieldSet_2_1.done && (_e = fieldSet_2.return)) _e.call(fieldSet_2);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (compositeKeys_2_1 && !compositeKeys_2_1.done && (_d = compositeKeys_2.return)) _d.call(compositeKeys_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n }\n });\n // Exit early when there are no changes introduced in the update mutation\n if (Object.keys(updatedElement).length === 0) {\n return null;\n }\n // include field(s) from custom PK if one is specified for the model\n if (primaryKey && primaryKey.length) {\n try {\n for (var primaryKey_1 = __values(primaryKey), primaryKey_1_1 = primaryKey_1.next(); !primaryKey_1_1.done; primaryKey_1_1 = primaryKey_1.next()) {\n var pkField = primaryKey_1_1.value;\n updatedElement[pkField] = originalElement[pkField];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (primaryKey_1_1 && !primaryKey_1_1.done && (_a = primaryKey_1.return)) _a.call(primaryKey_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n var id = originalElement.id, _version = originalElement._version, _lastChangedAt = originalElement._lastChangedAt, _deleted = originalElement._deleted;\n // For update mutations we only want to send fields with changes\n // and the required internal fields\n return __assign(__assign({}, updatedElement), { id: id,\n _version: _version,\n _lastChangedAt: _lastChangedAt,\n _deleted: _deleted });\n };\n return StorageClass;\n}());\nvar ExclusiveStorage = /** @class */ (function () {\n function ExclusiveStorage(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId) {\n this.mutex = new Mutex();\n this.storage = new StorageClass(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId);\n }\n ExclusiveStorage.prototype.runExclusive = function (fn) {\n return this.mutex.runExclusive(fn.bind(this, this.storage));\n };\n ExclusiveStorage.prototype.save = function (model, condition, mutator, patchesTuple) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runExclusive(function (storage) {\n return storage.save(model, condition, mutator, patchesTuple);\n })];\n });\n });\n };\n ExclusiveStorage.prototype.delete = function (modelOrModelConstructor, condition, mutator) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runExclusive(function (storage) {\n if (isModelConstructor(modelOrModelConstructor)) {\n var modelConstructor = modelOrModelConstructor;\n return storage.delete(modelConstructor, condition, mutator);\n }\n else {\n var model = modelOrModelConstructor;\n return storage.delete(model, condition, mutator);\n }\n })];\n });\n });\n };\n ExclusiveStorage.prototype.query = function (modelConstructor, predicate, pagination) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runExclusive(function (storage) {\n return storage.query(modelConstructor, predicate, pagination);\n })];\n });\n });\n };\n ExclusiveStorage.prototype.queryOne = function (modelConstructor, firstOrLast) {\n if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runExclusive(function (storage) {\n return storage.queryOne(modelConstructor, firstOrLast);\n })];\n });\n });\n };\n ExclusiveStorage.getNamespace = function () {\n return StorageClass.getNamespace();\n };\n ExclusiveStorage.prototype.observe = function (modelConstructor, predicate, skipOwn) {\n return this.storage.observe(modelConstructor, predicate, skipOwn);\n };\n ExclusiveStorage.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.runExclusive(function (storage) { return storage.clear(); })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n ExclusiveStorage.prototype.batchSave = function (modelConstructor, items) {\n return this.storage.batchSave(modelConstructor, items);\n };\n ExclusiveStorage.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.storage.init()];\n });\n });\n };\n return ExclusiveStorage;\n}());\nexport { ExclusiveStorage };\n//# sourceMappingURL=storage.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = new Reachability().networkMonitor();\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Observable from 'zen-observable-ts';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { ReachabilityMonitor } from './datastoreReachability';\nvar logger = new Logger('DataStore');\nvar RECONNECTING_IN = 5000; // 5s this may be configurable in the future\nvar DataStoreConnectivity = /** @class */ (function () {\n function DataStoreConnectivity() {\n this.connectionStatus = {\n online: false,\n };\n }\n DataStoreConnectivity.prototype.status = function () {\n var _this = this;\n if (this.observer) {\n throw new Error('Subscriber already exists');\n }\n return new Observable(function (observer) {\n _this.observer = observer;\n // Will be used to forward socket connection changes, enhancing Reachability\n _this.subscription = ReachabilityMonitor.subscribe(function (_a) {\n var online = _a.online;\n _this.connectionStatus.online = online;\n var observerResult = __assign({}, _this.connectionStatus); // copyOf status\n observer.next(observerResult);\n });\n return function () {\n clearTimeout(_this.timeout);\n _this.unsubscribe();\n };\n });\n };\n DataStoreConnectivity.prototype.unsubscribe = function () {\n if (this.subscription) {\n clearTimeout(this.timeout);\n this.subscription.unsubscribe();\n }\n };\n // for consistency with other background processors.\n DataStoreConnectivity.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.unsubscribe();\n return [2 /*return*/];\n });\n });\n };\n DataStoreConnectivity.prototype.socketDisconnected = function () {\n var _this = this;\n if (this.observer && typeof this.observer.next === 'function') {\n this.observer.next({ online: false }); // Notify network issue from the socket\n this.timeout = setTimeout(function () {\n var observerResult = __assign({}, _this.connectionStatus); // copyOf status\n _this.observer.next(observerResult);\n }, RECONNECTING_IN); // giving time for socket cleanup and network status stabilization\n }\n };\n return DataStoreConnectivity;\n}());\nexport default DataStoreConnectivity;\n//# sourceMappingURL=datastoreConnectivity.js.map","import { __awaiter, __generator, __read, __spread, __values } from \"tslib\";\nimport { OpType, } from '../types';\nimport { getIdentifierValue } from './utils';\n// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#merger\nvar ModelMerger = /** @class */ (function () {\n function ModelMerger(outbox, ownSymbol) {\n this.outbox = outbox;\n this.ownSymbol = ownSymbol;\n }\n /**\n *\n * @param storage Storage adapter that contains the data.\n * @param model The model from an outbox mutation.\n * @returns The type of operation (INSERT/UPDATE/DELETE)\n */\n ModelMerger.prototype.merge = function (storage, model, modelDefinition) {\n return __awaiter(this, void 0, void 0, function () {\n var result, mutationsForModel, isDelete;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.outbox.getForModel(storage, model, modelDefinition)];\n case 1:\n mutationsForModel = _c.sent();\n isDelete = model._deleted;\n if (!(mutationsForModel.length === 0)) return [3 /*break*/, 5];\n if (!isDelete) return [3 /*break*/, 3];\n result = OpType.DELETE;\n return [4 /*yield*/, storage.delete(model, undefined, this.ownSymbol)];\n case 2:\n _c.sent();\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, storage.save(model, undefined, this.ownSymbol)];\n case 4:\n _a = __read.apply(void 0, [_c.sent(), 1]), _b = __read(_a[0], 2), result = _b[1];\n _c.label = 5;\n case 5: return [2 /*return*/, result];\n }\n });\n });\n };\n ModelMerger.prototype.mergePage = function (storage, modelConstructor, items, modelDefinition) {\n return __awaiter(this, void 0, void 0, function () {\n var itemsMap, items_1, items_1_1, item, modelId, page;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n itemsMap = new Map();\n try {\n for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n item = items_1_1.value;\n modelId = getIdentifierValue(modelDefinition, item);\n itemsMap.set(modelId, item);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n page = __spread(itemsMap.values());\n return [4 /*yield*/, storage.batchSave(modelConstructor, page, this.ownSymbol)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n };\n return ModelMerger;\n}());\nexport { ModelMerger };\n//# sourceMappingURL=merger.js.map","import { __assign, __awaiter, __generator, __read, __rest } from \"tslib\";\nimport { ModelPredicateCreator } from '../predicates';\nimport { QueryOne, } from '../types';\nimport { USER, SYNC, valuesEqual } from '../util';\nimport { getIdentifierValue, TransformerMutationType } from './utils';\n// TODO: Persist deleted ids\n// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#outbox\nvar MutationEventOutbox = /** @class */ (function () {\n function MutationEventOutbox(schema, MutationEvent, modelInstanceCreator, ownSymbol) {\n this.schema = schema;\n this.MutationEvent = MutationEvent;\n this.modelInstanceCreator = modelInstanceCreator;\n this.ownSymbol = ownSymbol;\n }\n MutationEventOutbox.prototype.enqueue = function (storage, mutationEvent) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {\n var mutationEventModelDefinition, predicate, _a, first, incomingMutationType, merged_1, incomingConditionJSON, incomingCondition, merged;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n mutationEventModelDefinition = this.schema.namespaces[SYNC].models['MutationEvent'];\n predicate = ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: [\n { modelId: { eq: mutationEvent.modelId } },\n { id: { ne: this.inProgressMutationEventId } },\n ],\n });\n return [4 /*yield*/, s.query(this.MutationEvent, predicate)];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 1]), first = _a[0];\n if (!(first === undefined)) return [3 /*break*/, 3];\n return [4 /*yield*/, s.save(mutationEvent, undefined, this.ownSymbol)];\n case 2:\n _b.sent();\n return [2 /*return*/];\n case 3:\n incomingMutationType = mutationEvent.operation;\n if (!(first.operation === TransformerMutationType.CREATE)) return [3 /*break*/, 8];\n if (!(incomingMutationType === TransformerMutationType.DELETE)) return [3 /*break*/, 5];\n return [4 /*yield*/, s.delete(this.MutationEvent, predicate)];\n case 4:\n _b.sent();\n return [3 /*break*/, 7];\n case 5:\n merged_1 = this.mergeUserFields(first, mutationEvent);\n return [4 /*yield*/, s.save(this.MutationEvent.copyOf(first, function (draft) {\n draft.data = merged_1.data;\n }), undefined, this.ownSymbol)];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7: return [3 /*break*/, 12];\n case 8:\n incomingConditionJSON = mutationEvent.condition;\n incomingCondition = JSON.parse(incomingConditionJSON);\n merged = void 0;\n if (!(Object.keys(incomingCondition).length === 0)) return [3 /*break*/, 10];\n merged = this.mergeUserFields(first, mutationEvent);\n // delete all for model\n return [4 /*yield*/, s.delete(this.MutationEvent, predicate)];\n case 9:\n // delete all for model\n _b.sent();\n _b.label = 10;\n case 10:\n merged = merged || mutationEvent;\n // Enqueue new one\n return [4 /*yield*/, s.save(merged, undefined, this.ownSymbol)];\n case 11:\n // Enqueue new one\n _b.sent();\n _b.label = 12;\n case 12: return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n MutationEventOutbox.prototype.dequeue = function (storage, record, recordOp) {\n return __awaiter(this, void 0, void 0, function () {\n var head;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.peek(storage)];\n case 1:\n head = _a.sent();\n if (!record) return [3 /*break*/, 3];\n return [4 /*yield*/, this.syncOutboxVersionsOnDequeue(storage, record, head, recordOp)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [4 /*yield*/, storage.delete(head)];\n case 4:\n _a.sent();\n this.inProgressMutationEventId = undefined;\n return [2 /*return*/, head];\n }\n });\n });\n };\n /**\n * Doing a peek() implies that the mutation goes \"inProgress\"\n *\n * @param storage\n */\n MutationEventOutbox.prototype.peek = function (storage) {\n return __awaiter(this, void 0, void 0, function () {\n var head;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.queryOne(this.MutationEvent, QueryOne.FIRST)];\n case 1:\n head = _a.sent();\n this.inProgressMutationEventId = head ? head.id : undefined;\n return [2 /*return*/, head];\n }\n });\n });\n };\n MutationEventOutbox.prototype.getForModel = function (storage, model, userModelDefinition) {\n return __awaiter(this, void 0, void 0, function () {\n var mutationEventModelDefinition, modelId, mutationEvents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n mutationEventModelDefinition = this.schema.namespaces[SYNC].models.MutationEvent;\n modelId = getIdentifierValue(userModelDefinition, model);\n return [4 /*yield*/, storage.query(this.MutationEvent, ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: { modelId: { eq: modelId } },\n }))];\n case 1:\n mutationEvents = _a.sent();\n return [2 /*return*/, mutationEvents];\n }\n });\n });\n };\n MutationEventOutbox.prototype.getModelIds = function (storage) {\n return __awaiter(this, void 0, void 0, function () {\n var mutationEvents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.query(this.MutationEvent)];\n case 1:\n mutationEvents = _a.sent();\n result = new Set();\n mutationEvents.forEach(function (_a) {\n var modelId = _a.modelId;\n return result.add(modelId);\n });\n return [2 /*return*/, result];\n }\n });\n });\n };\n // applies _version from the AppSync mutation response to other items\n // in the mutation queue with the same id\n // see https://github.com/aws-amplify/amplify-js/pull/7354 for more details\n MutationEventOutbox.prototype.syncOutboxVersionsOnDequeue = function (storage, record, head, recordOp) {\n return __awaiter(this, void 0, void 0, function () {\n var _version, _lastChangedAt, _deleted, _incomingData, incomingData, data, __version, __lastChangedAt, __deleted, _outgoingData, outgoingData, mutationEventModelDefinition, userModelDefinition, recordId, predicate, outdatedMutations, reconciledMutations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (head.operation !== recordOp) {\n return [2 /*return*/];\n }\n _version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, _incomingData = __rest(record, [\"_version\", \"_lastChangedAt\", \"_deleted\"]);\n incomingData = this.removeTimestampFields(head.model, _incomingData);\n data = JSON.parse(head.data);\n if (!data) {\n return [2 /*return*/];\n }\n __version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, _outgoingData = __rest(data, [\"_version\", \"_lastChangedAt\", \"_deleted\"]);\n outgoingData = this.removeTimestampFields(head.model, _outgoingData);\n // Don't sync the version when the data in the response does not match the data\n // in the request, i.e., when there's a handled conflict\n //\n // NOTE: `incomingData` contains all the fields in the record, and `outgoingData`\n // only contains updated fields, resulting in an error when doing a comparison\n // of two equal mutations. Fix this, or mitigate otherwise.\n if (!valuesEqual(incomingData, outgoingData, true)) {\n return [2 /*return*/];\n }\n mutationEventModelDefinition = this.schema.namespaces[SYNC].models['MutationEvent'];\n userModelDefinition = this.schema.namespaces['user'].models[head.model];\n recordId = getIdentifierValue(userModelDefinition, record);\n predicate = ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: [\n { modelId: { eq: recordId } },\n { id: { ne: this.inProgressMutationEventId } },\n ],\n });\n return [4 /*yield*/, storage.query(this.MutationEvent, predicate)];\n case 1:\n outdatedMutations = _a.sent();\n if (!outdatedMutations.length) {\n return [2 /*return*/];\n }\n reconciledMutations = outdatedMutations.map(function (m) {\n var oldData = JSON.parse(m.data);\n var newData = __assign(__assign({}, oldData), { _version: _version, _lastChangedAt: _lastChangedAt });\n return _this.MutationEvent.copyOf(m, function (draft) {\n draft.data = JSON.stringify(newData);\n });\n });\n return [4 /*yield*/, storage.delete(this.MutationEvent, predicate)];\n case 2:\n _a.sent();\n return [4 /*yield*/, Promise.all(reconciledMutations.map(function (m) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.save(m, undefined, this.ownSymbol)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n }); }); }))];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n MutationEventOutbox.prototype.mergeUserFields = function (previous, current) {\n var _a = JSON.parse(previous.data), _version = _a._version, _lastChangedAt = _a._lastChangedAt, _deleted = _a._deleted, previousData = __rest(_a, [\"_version\", \"_lastChangedAt\", \"_deleted\"]);\n var _b = JSON.parse(current.data), __version = _b._version, __lastChangedAt = _b._lastChangedAt, __deleted = _b._deleted, currentData = __rest(_b, [\"_version\", \"_lastChangedAt\", \"_deleted\"]);\n var data = JSON.stringify(__assign(__assign({ _version: _version,\n _lastChangedAt: _lastChangedAt,\n _deleted: _deleted }, previousData), currentData));\n return this.modelInstanceCreator(this.MutationEvent, __assign(__assign({}, current), { data: data }));\n };\n /*\n if a model is using custom timestamp fields\n the custom field names will be stored in the model attributes\n\n e.g.\n \"attributes\": [\n {\n \"type\": \"model\",\n \"properties\": {\n \"timestamps\": {\n \"createdAt\": \"createdOn\",\n \"updatedAt\": \"updatedOn\"\n }\n }\n }\n ]\n */\n MutationEventOutbox.prototype.removeTimestampFields = function (model, record) {\n var _a, _b;\n var CREATED_AT_DEFAULT_KEY = 'createdAt';\n var UPDATED_AT_DEFAULT_KEY = 'updatedAt';\n var createdTimestampKey = CREATED_AT_DEFAULT_KEY;\n var updatedTimestampKey = UPDATED_AT_DEFAULT_KEY;\n var modelAttributes = (_a = this.schema.namespaces[USER].models[model].attributes) === null || _a === void 0 ? void 0 : _a.find(function (attr) { return attr.type === 'model'; });\n var timestampFieldsMap = (_b = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _b === void 0 ? void 0 : _b.timestamps;\n if (timestampFieldsMap) {\n createdTimestampKey = timestampFieldsMap[CREATED_AT_DEFAULT_KEY];\n updatedTimestampKey = timestampFieldsMap[UPDATED_AT_DEFAULT_KEY];\n }\n delete record[createdTimestampKey];\n delete record[updatedTimestampKey];\n return record;\n };\n return MutationEventOutbox;\n}());\nexport { MutationEventOutbox };\n//# sourceMappingURL=outbox.js.map","import { __read, __spread, __values } from \"tslib\";\nvar connectionTimeout = function (error) {\n return /^Connection failed: Connection Timeout/.test(error.message);\n};\nvar serverError = function (error) {\n return /^Error: Request failed with status code 5\\d\\d/.test(error.message);\n};\nexport var mutationErrorMap = {\n BadModel: function () { return false; },\n BadRecord: function (error) {\n var message = error.message;\n return (/^Cannot return \\w+ for [\\w-_]+ type/.test(message) ||\n /^Variable '.+' has coerced Null value for NonNull type/.test(message)); // newly required field, out of date client\n },\n ConfigError: function () { return false; },\n Transient: function (error) { return connectionTimeout(error) || serverError(error); },\n Unauthorized: function (error) {\n return error.message === 'Unauthorized' ||\n /^Request failed with status code 401/.test(error.message);\n },\n};\nexport var subscriptionErrorMap = {\n BadModel: function () { return false; },\n BadRecord: function () { return false; },\n ConfigError: function () { return false; },\n Transient: function (observableError) {\n var error = unwrapObservableError(observableError);\n return connectionTimeout(error) || serverError(error);\n },\n Unauthorized: function (observableError) {\n var error = unwrapObservableError(observableError);\n return /Connection failed.+Unauthorized/.test(error.message);\n },\n};\nexport var syncErrorMap = {\n BadModel: function () { return false; },\n BadRecord: function (error) { return /^Cannot return \\w+ for [\\w-_]+ type/.test(error.message); },\n ConfigError: function () { return false; },\n Transient: function (error) { return connectionTimeout(error) || serverError(error); },\n Unauthorized: function (error) { return error.errorType === 'Unauthorized'; },\n};\n/**\n * Get the first error reason of an observable.\n * Allows for error maps to be easily applied to observable errors\n *\n * @param observableError an error from ZenObservable subscribe error callback\n */\nfunction unwrapObservableError(observableError) {\n var _a = observableError.error, _b = __read((_a === void 0 ? {\n errors: [],\n } : _a).errors, 1), error = _b[0];\n return error;\n}\nexport function getMutationErrorType(error) {\n return mapErrorToType(mutationErrorMap, error);\n}\nexport function getSubscriptionErrorType(error) {\n return mapErrorToType(subscriptionErrorMap, error);\n}\nexport function getSyncErrorType(error) {\n return mapErrorToType(syncErrorMap, error);\n}\n/**\n * Categorizes an error with a broad error type, intended to make\n * customer error handling code simpler.\n * @param errorMap Error names and a list of patterns that indicate them (each pattern as a regex or function)\n * @param error The underying error to categorize.\n */\nexport function mapErrorToType(errorMap, error) {\n var e_1, _a;\n var errorTypes = __spread(Object.keys(errorMap));\n try {\n for (var errorTypes_1 = __values(errorTypes), errorTypes_1_1 = errorTypes_1.next(); !errorTypes_1_1.done; errorTypes_1_1 = errorTypes_1.next()) {\n var errorType = errorTypes_1_1.value;\n var matcher = errorMap[errorType];\n if (matcher === null || matcher === void 0 ? void 0 : matcher(error)) {\n return errorType;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (errorTypes_1_1 && !errorTypes_1_1.done && (_a = errorTypes_1.return)) _a.call(errorTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return 'Unknown';\n}\n//# sourceMappingURL=errorMaps.js.map","import { __assign, __awaiter, __generator, __read, __rest, __values } from \"tslib\";\nimport { InternalAPI } from '@aws-amplify/api/internals';\nimport { Category, ConsoleLogger as Logger, DataStoreAction, jitteredBackoff, NonRetryableError, retry, BackgroundProcessManager, } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nimport { DISCARD, isModelFieldType, isTargetNameAssociation, OpType, ProcessName, } from '../../types';\nimport { extractTargetNamesFromSrc, USER, ID } from '../../util';\nimport { buildGraphQLOperation, createMutationInstanceFromModelOperation, getModelAuthModes, TransformerMutationType, getTokenForCustomAuth, } from '../utils';\nimport { getMutationErrorType } from './errorMaps';\nvar MAX_ATTEMPTS = 10;\nvar logger = new Logger('DataStore');\nvar MutationProcessor = /** @class */ (function () {\n function MutationProcessor(schema, storage, userClasses, outbox, modelInstanceCreator, MutationEvent, amplifyConfig, authModeStrategy, errorHandler, conflictHandler, amplifyContext) {\n if (amplifyConfig === void 0) { amplifyConfig = {}; }\n this.schema = schema;\n this.storage = storage;\n this.userClasses = userClasses;\n this.outbox = outbox;\n this.modelInstanceCreator = modelInstanceCreator;\n this.MutationEvent = MutationEvent;\n this.amplifyConfig = amplifyConfig;\n this.authModeStrategy = authModeStrategy;\n this.errorHandler = errorHandler;\n this.conflictHandler = conflictHandler;\n this.amplifyContext = amplifyContext;\n this.typeQuery = new WeakMap();\n this.processing = false;\n this.runningProcesses = new BackgroundProcessManager();\n this.amplifyContext.InternalAPI =\n this.amplifyContext.InternalAPI || InternalAPI;\n this.generateQueries();\n }\n MutationProcessor.prototype.generateQueries = function () {\n var _this = this;\n Object.values(this.schema.namespaces).forEach(function (namespace) {\n Object.values(namespace.models)\n .filter(function (_a) {\n var syncable = _a.syncable;\n return syncable;\n })\n .forEach(function (model) {\n var _a = __read(buildGraphQLOperation(namespace, model, 'CREATE'), 1), createMutation = _a[0];\n var _b = __read(buildGraphQLOperation(namespace, model, 'UPDATE'), 1), updateMutation = _b[0];\n var _c = __read(buildGraphQLOperation(namespace, model, 'DELETE'), 1), deleteMutation = _c[0];\n _this.typeQuery.set(model, [\n createMutation,\n updateMutation,\n deleteMutation,\n ]);\n });\n });\n };\n MutationProcessor.prototype.isReady = function () {\n return this.observer !== undefined;\n };\n MutationProcessor.prototype.start = function () {\n var _this = this;\n this.runningProcesses = new BackgroundProcessManager();\n var observable = new Observable(function (observer) {\n _this.observer = observer;\n try {\n _this.resume();\n }\n catch (error) {\n logger.error('mutations processor start error', error);\n throw error;\n }\n return _this.runningProcesses.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // The observer has unsubscribed and/or `stop()` has been called.\n this.removeObserver();\n this.pause();\n return [2 /*return*/];\n });\n }); });\n });\n return observable;\n };\n MutationProcessor.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.removeObserver();\n return [4 /*yield*/, this.runningProcesses.close()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.runningProcesses.open()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n MutationProcessor.prototype.removeObserver = function () {\n var _a, _b;\n (_b = (_a = this.observer) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.observer = undefined;\n };\n MutationProcessor.prototype.resume = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, (this.runningProcesses.isOpen &&\n this.runningProcesses.add(function (onTerminate) { return __awaiter(_this, void 0, void 0, function () {\n var head, namespaceName, _loop_1, this_1, _a;\n var _this = this;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (this.processing ||\n !this.isReady() ||\n !this.runningProcesses.isOpen) {\n return [2 /*return*/];\n }\n this.processing = true;\n namespaceName = USER;\n _loop_1 = function () {\n var model, operation, data, condition, modelConstructor, result, opName, modelDefinition, modelAuthModes, operationAuthModes_1, authModeAttempts_1, authModeRetry_1, error_1, record, hasMore;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n model = head.model, operation = head.operation, data = head.data, condition = head.condition;\n modelConstructor = this_1.userClasses[model];\n result = undefined;\n opName = undefined;\n modelDefinition = undefined;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, getModelAuthModes({\n authModeStrategy: this_1.authModeStrategy,\n defaultAuthMode: this_1.amplifyConfig.aws_appsync_authenticationType,\n modelName: model,\n schema: this_1.schema,\n })];\n case 2:\n modelAuthModes = _b.sent();\n operationAuthModes_1 = modelAuthModes[operation.toUpperCase()];\n authModeAttempts_1 = 0;\n authModeRetry_1 = function () { return __awaiter(_this, void 0, void 0, function () {\n var response, error_2, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 9]);\n logger.debug(\"Attempting mutation with authMode: \" + operationAuthModes_1[authModeAttempts_1]);\n return [4 /*yield*/, this.jitteredRetry(namespaceName, model, operation, data, condition, modelConstructor, this.MutationEvent, head, operationAuthModes_1[authModeAttempts_1], onTerminate)];\n case 1:\n response = _a.sent();\n logger.debug(\"Mutation sent successfully with authMode: \" + operationAuthModes_1[authModeAttempts_1]);\n return [2 /*return*/, response];\n case 2:\n error_2 = _a.sent();\n authModeAttempts_1++;\n if (!(authModeAttempts_1 >= operationAuthModes_1.length)) return [3 /*break*/, 7];\n logger.debug(\"Mutation failed with authMode: \" + operationAuthModes_1[authModeAttempts_1 - 1]);\n _a.label = 3;\n case 3:\n _a.trys.push([3, 5, , 6]);\n return [4 /*yield*/, this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: null,\n message: error_2.message,\n model: modelConstructor.name,\n operation: opName,\n errorType: getMutationErrorType(error_2),\n process: ProcessName.sync,\n remoteModel: null,\n cause: error_2,\n })];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n e_1 = _a.sent();\n logger.error('Mutation error handler failed with:', e_1);\n return [3 /*break*/, 6];\n case 6: throw error_2;\n case 7:\n logger.debug(\"Mutation failed with authMode: \" + operationAuthModes_1[authModeAttempts_1 - 1] + \". Retrying with authMode: \" + operationAuthModes_1[authModeAttempts_1]);\n return [4 /*yield*/, authModeRetry_1()];\n case 8: return [2 /*return*/, _a.sent()];\n case 9: return [2 /*return*/];\n }\n });\n }); };\n return [4 /*yield*/, authModeRetry_1()];\n case 3:\n _a = __read.apply(void 0, [_b.sent(), 3]), result = _a[0], opName = _a[1], modelDefinition = _a[2];\n return [3 /*break*/, 5];\n case 4:\n error_1 = _b.sent();\n if (error_1.message === 'Offline' ||\n error_1.message === 'RetryMutation') {\n return [2 /*return*/, \"continue\"];\n }\n return [3 /*break*/, 5];\n case 5:\n if (!(result === undefined)) return [3 /*break*/, 7];\n logger.debug('done retrying');\n return [4 /*yield*/, this_1.storage.runExclusive(function (storage) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.outbox.dequeue(storage)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })];\n case 6:\n _b.sent();\n return [2 /*return*/, \"continue\"];\n case 7:\n record = result.data[opName];\n hasMore = false;\n return [4 /*yield*/, this_1.storage.runExclusive(function (storage) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // using runExclusive to prevent possible race condition\n // when another record gets enqueued between dequeue and peek\n return [4 /*yield*/, this.outbox.dequeue(storage, record, operation)];\n case 1:\n // using runExclusive to prevent possible race condition\n // when another record gets enqueued between dequeue and peek\n _a.sent();\n return [4 /*yield*/, this.outbox.peek(storage)];\n case 2:\n hasMore = (_a.sent()) !== undefined;\n return [2 /*return*/];\n }\n });\n }); })];\n case 8:\n _b.sent();\n (_c = (_b = this_1.observer) === null || _b === void 0 ? void 0 : _b.next) === null || _c === void 0 ? void 0 : _c.call(_b, {\n operation: operation,\n modelDefinition: modelDefinition,\n model: record,\n hasMore: hasMore,\n });\n return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _d.label = 1;\n case 1:\n _a = this.processing &&\n this.runningProcesses.isOpen;\n if (!_a) return [3 /*break*/, 3];\n return [4 /*yield*/, this.outbox.peek(this.storage)];\n case 2:\n _a = (head = _d.sent()) !== undefined;\n _d.label = 3;\n case 3:\n if (!_a) return [3 /*break*/, 5];\n return [5 /*yield**/, _loop_1()];\n case 4:\n _d.sent();\n return [3 /*break*/, 1];\n case 5:\n // pauses itself\n this.pause();\n return [2 /*return*/];\n }\n });\n }); }, 'mutation resume loop'))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n MutationProcessor.prototype.jitteredRetry = function (namespaceName, model, operation, data, condition, modelConstructor, MutationEvent, mutationEvent, authMode, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, retry(function (model, operation, data, condition, modelConstructor, MutationEvent, mutationEvent) { return __awaiter(_this, void 0, void 0, function () {\n var _a, query, variables, graphQLCondition, opName, modelDefinition, authToken, tryWith, attempt, opType, customUserAgentDetails, result, err_1, _b, error, _c, _d, code, retryWith, err_2, _e, _f, opName_1, query_1, authToken_1, serverData, namespace, updatedMutation;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = __read(this.createQueryVariables(namespaceName, model, operation, data, condition), 5), query = _a[0], variables = _a[1], graphQLCondition = _a[2], opName = _a[3], modelDefinition = _a[4];\n return [4 /*yield*/, getTokenForCustomAuth(authMode, this.amplifyConfig)];\n case 1:\n authToken = _h.sent();\n tryWith = {\n query: query,\n variables: variables,\n authMode: authMode,\n authToken: authToken,\n };\n attempt = 0;\n opType = this.opTypeFromTransformerOperation(operation);\n customUserAgentDetails = {\n category: Category.DataStore,\n action: DataStoreAction.GraphQl,\n };\n _h.label = 2;\n case 2:\n _h.trys.push([2, 4, , 17]);\n return [4 /*yield*/, this.amplifyContext.InternalAPI.graphql(tryWith, undefined, customUserAgentDetails)];\n case 3:\n result = (_h.sent());\n // Use `as any` because TypeScript doesn't seem to like passing tuples\n // through generic params.\n return [2 /*return*/, [result, opName, modelDefinition]];\n case 4:\n err_1 = _h.sent();\n if (!(err_1.errors && err_1.errors.length > 0)) return [3 /*break*/, 15];\n _b = __read(err_1.errors, 1), error = _b[0];\n _c = error.originalError, _d = (_c === void 0 ? {} : _c).code, code = _d === void 0 ? null : _d;\n if (error.errorType === 'Unauthorized') {\n throw new NonRetryableError('Unauthorized');\n }\n if (error.message === 'Network Error' ||\n code === 'ECONNABORTED' // refers to axios timeout error caused by device's bad network condition\n ) {\n if (!this.processing) {\n throw new NonRetryableError('Offline');\n }\n // TODO: Check errors on different env (react-native or other browsers)\n throw new Error('Network Error');\n }\n if (!(error.errorType === 'ConflictUnhandled')) return [3 /*break*/, 13];\n // TODO: add on ConflictConditionalCheck error query last from server\n attempt++;\n retryWith = void 0;\n if (!(attempt > MAX_ATTEMPTS)) return [3 /*break*/, 5];\n retryWith = DISCARD;\n return [3 /*break*/, 8];\n case 5:\n _h.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.conflictHandler({\n modelConstructor: modelConstructor,\n localModel: this.modelInstanceCreator(modelConstructor, variables.input),\n remoteModel: this.modelInstanceCreator(modelConstructor, error.data),\n operation: opType,\n attempts: attempt,\n })];\n case 6:\n retryWith = _h.sent();\n return [3 /*break*/, 8];\n case 7:\n err_2 = _h.sent();\n logger.warn('conflict trycatch', err_2);\n return [3 /*break*/, 17];\n case 8:\n if (!(retryWith === DISCARD)) return [3 /*break*/, 11];\n _e = __read(buildGraphQLOperation(this.schema.namespaces[namespaceName], modelDefinition, 'GET'), 1), _f = __read(_e[0], 3), opName_1 = _f[1], query_1 = _f[2];\n return [4 /*yield*/, getTokenForCustomAuth(authMode, this.amplifyConfig)];\n case 9:\n authToken_1 = _h.sent();\n return [4 /*yield*/, this.amplifyContext.InternalAPI.graphql({\n query: query_1,\n variables: { id: variables.input.id },\n authMode: authMode,\n authToken: authToken_1,\n }, undefined, customUserAgentDetails)];\n case 10:\n serverData = _h.sent();\n // onTerminate cancel graphql()\n return [2 /*return*/, [serverData, opName_1, modelDefinition]];\n case 11:\n namespace = this.schema.namespaces[namespaceName];\n updatedMutation = createMutationInstanceFromModelOperation(namespace.relationships, modelDefinition, opType, modelConstructor, retryWith, graphQLCondition, MutationEvent, this.modelInstanceCreator, mutationEvent.id);\n return [4 /*yield*/, this.storage.save(updatedMutation)];\n case 12:\n _h.sent();\n throw new NonRetryableError('RetryMutation');\n case 13:\n try {\n this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: variables.input,\n message: error.message,\n operation: operation,\n errorType: getMutationErrorType(error),\n errorInfo: error.errorInfo,\n process: ProcessName.mutate,\n cause: error,\n remoteModel: error.data\n ? this.modelInstanceCreator(modelConstructor, error.data)\n : null,\n });\n }\n catch (err) {\n logger.warn('Mutation error handler failed with:', err);\n }\n finally {\n // Return empty tuple, dequeues the mutation\n return [2 /*return*/, error.data\n ? [\n { data: (_g = {}, _g[opName] = error.data, _g) },\n opName,\n modelDefinition,\n ]\n : []];\n }\n _h.label = 14;\n case 14: return [3 /*break*/, 16];\n case 15: \n // Catch-all for client-side errors that don't come back in the `GraphQLError` format.\n // These errors should not be retried.\n throw new NonRetryableError(err_1);\n case 16: return [3 /*break*/, 17];\n case 17:\n if (tryWith) return [3 /*break*/, 2];\n _h.label = 18;\n case 18: return [2 /*return*/];\n }\n });\n }); }, [\n model,\n operation,\n data,\n condition,\n modelConstructor,\n MutationEvent,\n mutationEvent,\n ], safeJitteredBackoff, onTerminate)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n MutationProcessor.prototype.createQueryVariables = function (namespaceName, model, operation, data, condition) {\n var e_2, _a, e_3, _b, e_4, _c;\n var _d, _e;\n var modelDefinition = this.schema.namespaces[namespaceName].models[model];\n var primaryKey = this.schema.namespaces[namespaceName].keys[model].primaryKey;\n var auth = (_d = modelDefinition.attributes) === null || _d === void 0 ? void 0 : _d.find(function (a) { return a.type === 'auth'; });\n var ownerFields = ((_e = auth === null || auth === void 0 ? void 0 : auth.properties) === null || _e === void 0 ? void 0 : _e.rules.map(function (rule) { return rule.ownerField; }).filter(function (f) { return f; })) || ['owner'];\n var queriesTuples = this.typeQuery.get(modelDefinition);\n var _f = __read(queriesTuples.find(function (_a) {\n var _b = __read(_a, 1), transformerMutationType = _b[0];\n return transformerMutationType === operation;\n }), 3), opName = _f[1], query = _f[2];\n var _g = JSON.parse(data), _version = _g._version, parsedData = __rest(_g, [\"_version\"]);\n // include all the fields that comprise a custom PK if one is specified\n var deleteInput = {};\n if (primaryKey === null || primaryKey === void 0 ? void 0 : primaryKey.length) {\n try {\n for (var primaryKey_1 = __values(primaryKey), primaryKey_1_1 = primaryKey_1.next(); !primaryKey_1_1.done; primaryKey_1_1 = primaryKey_1.next()) {\n var pkField = primaryKey_1_1.value;\n deleteInput[pkField] = parsedData[pkField];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (primaryKey_1_1 && !primaryKey_1_1.done && (_a = primaryKey_1.return)) _a.call(primaryKey_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n else {\n deleteInput[ID] = parsedData.id;\n }\n var mutationInput;\n if (operation === TransformerMutationType.DELETE) {\n // For DELETE mutations, only the key(s) are included in the input\n mutationInput = deleteInput;\n }\n else {\n // Otherwise, we construct the mutation input with the following logic\n mutationInput = {};\n var modelFields = Object.values(modelDefinition.fields);\n try {\n for (var modelFields_1 = __values(modelFields), modelFields_1_1 = modelFields_1.next(); !modelFields_1_1.done; modelFields_1_1 = modelFields_1.next()) {\n var _h = modelFields_1_1.value, name_1 = _h.name, type = _h.type, association = _h.association, isReadOnly = _h.isReadOnly;\n // omit readonly fields. cloud storage doesn't need them and won't take them!\n if (isReadOnly) {\n continue;\n }\n // omit owner fields if it's `null`. cloud storage doesn't allow it.\n if (ownerFields.includes(name_1) && parsedData[name_1] === null) {\n continue;\n }\n // model fields should be stripped out from the input\n if (isModelFieldType(type)) {\n // except for belongs to relations - we need to replace them with the correct foreign key(s)\n if (isTargetNameAssociation(association) &&\n association.connectionType === 'BELONGS_TO') {\n var targetNames = extractTargetNamesFromSrc(association);\n if (targetNames) {\n try {\n // instead of including the connected model itself, we add its key(s) to the mutation input\n for (var targetNames_1 = (e_4 = void 0, __values(targetNames)), targetNames_1_1 = targetNames_1.next(); !targetNames_1_1.done; targetNames_1_1 = targetNames_1.next()) {\n var targetName = targetNames_1_1.value;\n mutationInput[targetName] = parsedData[targetName];\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (targetNames_1_1 && !targetNames_1_1.done && (_c = targetNames_1.return)) _c.call(targetNames_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n continue;\n }\n // scalar fields / non-model types\n if (operation === TransformerMutationType.UPDATE) {\n if (!parsedData.hasOwnProperty(name_1)) {\n // for update mutations - strip out a field if it's unchanged\n continue;\n }\n }\n // all other fields are added to the input object\n mutationInput[name_1] = parsedData[name_1];\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (modelFields_1_1 && !modelFields_1_1.done && (_b = modelFields_1.return)) _b.call(modelFields_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n // Build mutation variables input object\n var input = __assign(__assign({}, mutationInput), { _version: _version });\n var graphQLCondition = JSON.parse(condition);\n var variables = __assign({ input: input }, (operation === TransformerMutationType.CREATE\n ? {}\n : {\n condition: Object.keys(graphQLCondition).length > 0\n ? graphQLCondition\n : null,\n }));\n return [query, variables, graphQLCondition, opName, modelDefinition];\n };\n MutationProcessor.prototype.opTypeFromTransformerOperation = function (operation) {\n switch (operation) {\n case TransformerMutationType.CREATE:\n return OpType.INSERT;\n case TransformerMutationType.DELETE:\n return OpType.DELETE;\n case TransformerMutationType.UPDATE:\n return OpType.UPDATE;\n case TransformerMutationType.GET: // Intentionally blank\n break;\n default:\n throw new Error(\"Invalid operation \" + operation);\n }\n // because it makes TS happy ...\n return undefined;\n };\n MutationProcessor.prototype.pause = function () {\n this.processing = false;\n };\n return MutationProcessor;\n}());\nvar MAX_RETRY_DELAY_MS = 5 * 60 * 1000;\nvar originalJitteredBackoff = jitteredBackoff(MAX_RETRY_DELAY_MS);\n/**\n * @private\n * Internal use of Amplify only.\n *\n * Wraps the jittered backoff calculation to retry Network Errors indefinitely.\n * Backs off according to original jittered retry logic until the original retry\n * logic hits its max. After this occurs, if the error is a Network Error, we\n * ignore the attempt count and return MAX_RETRY_DELAY_MS to retry forever (until\n * the request succeeds).\n *\n * @param attempt ignored\n * @param _args ignored\n * @param error tested to see if `.message` is 'Network Error'\n * @returns number | false :\n */\nexport var safeJitteredBackoff = function (attempt, _args, error) {\n var attemptResult = originalJitteredBackoff(attempt);\n // If this is the last attempt and it is a network error, we retry indefinitively every 5 minutes\n if (attemptResult === false && (error === null || error === void 0 ? void 0 : error.message) === 'Network Error') {\n return MAX_RETRY_DELAY_MS;\n }\n return attemptResult;\n};\nexport { MutationProcessor };\n//# sourceMappingURL=mutation.js.map","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { GRAPHQL_AUTH_MODE } from '@aws-amplify/api';\nimport { InternalAPI } from '@aws-amplify/api/internals';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\nimport { Category, ConsoleLogger as Logger, DataStoreAction, Hub, BackgroundProcessManager, } from '@aws-amplify/core';\nimport { CONTROL_MSG as PUBSUB_CONTROL_MSG } from '@aws-amplify/pubsub';\nimport Observable from 'zen-observable-ts';\nimport { ProcessName, } from '../../types';\nimport { buildSubscriptionGraphQLOperation, getAuthorizationRules, getModelAuthModes, getUserGroupsFromToken, TransformerMutationType, getTokenForCustomAuth, predicateToGraphQLFilter, RTFError, generateRTFRemediation, } from '../utils';\nimport { ModelPredicateCreator } from '../../predicates';\nimport { validatePredicate } from '../../util';\nimport { getSubscriptionErrorType } from './errorMaps';\nvar logger = new Logger('DataStore');\nexport var CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTED\"] = \"CONNECTED\";\n})(CONTROL_MSG || (CONTROL_MSG = {}));\nexport var USER_CREDENTIALS;\n(function (USER_CREDENTIALS) {\n USER_CREDENTIALS[USER_CREDENTIALS[\"none\"] = 0] = \"none\";\n USER_CREDENTIALS[USER_CREDENTIALS[\"unauth\"] = 1] = \"unauth\";\n USER_CREDENTIALS[USER_CREDENTIALS[\"auth\"] = 2] = \"auth\";\n})(USER_CREDENTIALS || (USER_CREDENTIALS = {}));\nvar SubscriptionProcessor = /** @class */ (function () {\n function SubscriptionProcessor(schema, syncPredicates, amplifyConfig, authModeStrategy, errorHandler, amplifyContext) {\n if (amplifyConfig === void 0) { amplifyConfig = {}; }\n if (amplifyContext === void 0) { amplifyContext = {\n Auth: Auth,\n InternalAPI: InternalAPI,\n Cache: Cache,\n }; }\n this.schema = schema;\n this.syncPredicates = syncPredicates;\n this.amplifyConfig = amplifyConfig;\n this.authModeStrategy = authModeStrategy;\n this.errorHandler = errorHandler;\n this.amplifyContext = amplifyContext;\n this.typeQuery = new WeakMap();\n this.buffer = [];\n this.runningProcesses = new BackgroundProcessManager();\n }\n SubscriptionProcessor.prototype.buildSubscription = function (namespace, model, transformerMutationType, userCredentials, cognitoTokenPayload, oidcTokenPayload, authMode, filterArg) {\n if (filterArg === void 0) { filterArg = false; }\n var aws_appsync_authenticationType = this.amplifyConfig.aws_appsync_authenticationType;\n var _a = this.getAuthorizationInfo(model, userCredentials, aws_appsync_authenticationType, cognitoTokenPayload, oidcTokenPayload, authMode) || {}, isOwner = _a.isOwner, ownerField = _a.ownerField, ownerValue = _a.ownerValue;\n var _b = __read(buildSubscriptionGraphQLOperation(namespace, model, transformerMutationType, isOwner, ownerField, filterArg), 3), opType = _b[0], opName = _b[1], query = _b[2];\n return { authMode: authMode, opType: opType, opName: opName, query: query, isOwner: isOwner, ownerField: ownerField, ownerValue: ownerValue };\n };\n SubscriptionProcessor.prototype.getAuthorizationInfo = function (model, userCredentials, defaultAuthType, cognitoTokenPayload, oidcTokenPayload, authMode) {\n if (cognitoTokenPayload === void 0) { cognitoTokenPayload = {}; }\n if (oidcTokenPayload === void 0) { oidcTokenPayload = {}; }\n var rules = getAuthorizationRules(model);\n // Return null if user doesn't have proper credentials for private API with IAM auth\n var iamPrivateAuth = authMode === GRAPHQL_AUTH_MODE.AWS_IAM &&\n rules.find(function (rule) { return rule.authStrategy === 'private' && rule.provider === 'iam'; });\n if (iamPrivateAuth && userCredentials === USER_CREDENTIALS.unauth) {\n return null;\n }\n // Group auth should take precedence over owner auth, so we are checking\n // if rule(s) have group authorization as well as if either the Cognito or\n // OIDC token has a groupClaim. If so, we are returning auth info before\n // any further owner-based auth checks.\n var groupAuthRules = rules.filter(function (rule) {\n return rule.authStrategy === 'groups' &&\n ['userPools', 'oidc'].includes(rule.provider);\n });\n var validGroup = (authMode === GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS ||\n authMode === GRAPHQL_AUTH_MODE.OPENID_CONNECT) &&\n groupAuthRules.find(function (groupAuthRule) {\n // validate token against groupClaim\n var cognitoUserGroups = getUserGroupsFromToken(cognitoTokenPayload, groupAuthRule);\n var oidcUserGroups = getUserGroupsFromToken(oidcTokenPayload, groupAuthRule);\n return __spread(cognitoUserGroups, oidcUserGroups).find(function (userGroup) {\n return groupAuthRule.groups.find(function (group) { return group === userGroup; });\n });\n });\n if (validGroup) {\n return {\n authMode: authMode,\n isOwner: false,\n };\n }\n // Owner auth needs additional values to be returned in order to create the subscription with\n // the correct parameters so we are getting the owner value from the Cognito token via the\n // identityClaim from the auth rule.\n var cognitoOwnerAuthRules = authMode === GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS\n ? rules.filter(function (rule) {\n return rule.authStrategy === 'owner' && rule.provider === 'userPools';\n })\n : [];\n var ownerAuthInfo;\n cognitoOwnerAuthRules.forEach(function (ownerAuthRule) {\n var _a;\n var ownerValue = cognitoTokenPayload[ownerAuthRule.identityClaim];\n // AuthZ for \"list of owners\" is handled dynamically in the subscription auth request\n // resolver. It doesn't rely on a subscription arg.\n // Only pass a subscription arg for single owner auth\n var singleOwner = ((_a = model.fields[ownerAuthRule.ownerField]) === null || _a === void 0 ? void 0 : _a.isArray) !== true;\n var isOwnerArgRequired = singleOwner && !ownerAuthRule.areSubscriptionsPublic;\n if (ownerValue) {\n ownerAuthInfo = {\n authMode: GRAPHQL_AUTH_MODE.AMAZON_COGNITO_USER_POOLS,\n isOwner: isOwnerArgRequired,\n ownerField: ownerAuthRule.ownerField,\n ownerValue: ownerValue,\n };\n }\n });\n if (ownerAuthInfo) {\n return ownerAuthInfo;\n }\n // Owner auth needs additional values to be returned in order to create the subscription with\n // the correct parameters so we are getting the owner value from the OIDC token via the\n // identityClaim from the auth rule.\n var oidcOwnerAuthRules = authMode === GRAPHQL_AUTH_MODE.OPENID_CONNECT\n ? rules.filter(function (rule) { return rule.authStrategy === 'owner' && rule.provider === 'oidc'; })\n : [];\n oidcOwnerAuthRules.forEach(function (ownerAuthRule) {\n var _a;\n var ownerValue = oidcTokenPayload[ownerAuthRule.identityClaim];\n var singleOwner = ((_a = model.fields[ownerAuthRule.ownerField]) === null || _a === void 0 ? void 0 : _a.isArray) !== true;\n var isOwnerArgRequired = singleOwner && !ownerAuthRule.areSubscriptionsPublic;\n if (ownerValue) {\n ownerAuthInfo = {\n authMode: GRAPHQL_AUTH_MODE.OPENID_CONNECT,\n isOwner: isOwnerArgRequired,\n ownerField: ownerAuthRule.ownerField,\n ownerValue: ownerValue,\n };\n }\n });\n if (ownerAuthInfo) {\n return ownerAuthInfo;\n }\n // Fallback: return authMode or default auth type\n return {\n authMode: authMode || defaultAuthType,\n isOwner: false,\n };\n };\n SubscriptionProcessor.prototype.hubQueryCompletionListener = function (completed, capsule) {\n var event = capsule.payload.event;\n if (event === PUBSUB_CONTROL_MSG.SUBSCRIPTION_ACK) {\n completed();\n }\n };\n SubscriptionProcessor.prototype.start = function () {\n var _this = this;\n this.runningProcesses =\n this.runningProcesses || new BackgroundProcessManager();\n var ctlObservable = new Observable(function (observer) {\n var promises = [];\n // Creating subs for each model/operation combo so they can be unsubscribed\n // independently, since the auth retry behavior is asynchronous.\n var subscriptions = {};\n var cognitoTokenPayload, oidcTokenPayload;\n var userCredentials = USER_CREDENTIALS.none;\n _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var credentials, err_1, session, err_2, _a, aws_cognito_region, AuthConfig, token, federatedInfo, currentUser, payload, err_3;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.amplifyContext.Auth.currentCredentials()];\n case 1:\n credentials = _b.sent();\n userCredentials = credentials.authenticated\n ? USER_CREDENTIALS.auth\n : USER_CREDENTIALS.unauth;\n return [3 /*break*/, 3];\n case 2:\n err_1 = _b.sent();\n return [3 /*break*/, 3];\n case 3:\n _b.trys.push([3, 5, , 6]);\n return [4 /*yield*/, this.amplifyContext.Auth.currentSession()];\n case 4:\n session = _b.sent();\n cognitoTokenPayload = session.getIdToken().decodePayload();\n return [3 /*break*/, 6];\n case 5:\n err_2 = _b.sent();\n return [3 /*break*/, 6];\n case 6:\n _b.trys.push([6, 11, , 12]);\n _a = this.amplifyConfig, aws_cognito_region = _a.aws_cognito_region, AuthConfig = _a.Auth;\n if (!aws_cognito_region || (AuthConfig && !AuthConfig.region)) {\n throw 'Auth is not configured';\n }\n token = void 0;\n return [4 /*yield*/, this.amplifyContext.Cache.getItem('federatedInfo')];\n case 7:\n federatedInfo = _b.sent();\n if (!federatedInfo) return [3 /*break*/, 8];\n token = federatedInfo.token;\n return [3 /*break*/, 10];\n case 8: return [4 /*yield*/, this.amplifyContext.Auth.currentAuthenticatedUser()];\n case 9:\n currentUser = _b.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _b.label = 10;\n case 10:\n if (token) {\n payload = token.split('.')[1];\n oidcTokenPayload = JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n }\n return [3 /*break*/, 12];\n case 11:\n err_3 = _b.sent();\n logger.debug('error getting OIDC JWT', err_3);\n return [3 /*break*/, 12];\n case 12:\n Object.values(this.schema.namespaces).forEach(function (namespace) {\n Object.values(namespace.models)\n .filter(function (_a) {\n var syncable = _a.syncable;\n return syncable;\n })\n .forEach(function (modelDefinition) {\n return _this.runningProcesses.isOpen &&\n _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var modelAuthModes, readAuthModes, operations, operationAuthModeAttempts, predicatesGroup, addFilterArg, subscriptionRetry;\n var _a, _b, _c;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, getModelAuthModes({\n authModeStrategy: this.authModeStrategy,\n defaultAuthMode: this.amplifyConfig.aws_appsync_authenticationType,\n modelName: modelDefinition.name,\n schema: this.schema,\n })];\n case 1:\n modelAuthModes = _d.sent();\n readAuthModes = modelAuthModes.READ;\n subscriptions = __assign(__assign({}, subscriptions), (_a = {}, _a[modelDefinition.name] = (_b = {},\n _b[TransformerMutationType.CREATE] = [],\n _b[TransformerMutationType.UPDATE] = [],\n _b[TransformerMutationType.DELETE] = [],\n _b), _a));\n operations = [\n TransformerMutationType.CREATE,\n TransformerMutationType.UPDATE,\n TransformerMutationType.DELETE,\n ];\n operationAuthModeAttempts = (_c = {},\n _c[TransformerMutationType.CREATE] = 0,\n _c[TransformerMutationType.UPDATE] = 0,\n _c[TransformerMutationType.DELETE] = 0,\n _c);\n predicatesGroup = ModelPredicateCreator.getPredicates(this.syncPredicates.get(modelDefinition), false);\n addFilterArg = predicatesGroup !== undefined;\n subscriptionRetry = function (operation, addFilter) {\n if (addFilter === void 0) { addFilter = addFilterArg; }\n return __awaiter(_this, void 0, void 0, function () {\n var _a, transformerMutationType, opName, query, isOwner, ownerField, ownerValue, authMode, authToken, variables, customUserAgentDetails, queryObservable, subscriptionReadyCallback;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.buildSubscription(namespace, modelDefinition, operation, userCredentials, cognitoTokenPayload, oidcTokenPayload, readAuthModes[operationAuthModeAttempts[operation]], addFilter), transformerMutationType = _a.opType, opName = _a.opName, query = _a.query, isOwner = _a.isOwner, ownerField = _a.ownerField, ownerValue = _a.ownerValue, authMode = _a.authMode;\n return [4 /*yield*/, getTokenForCustomAuth(authMode, this.amplifyConfig)];\n case 1:\n authToken = _b.sent();\n variables = {};\n customUserAgentDetails = {\n category: Category.DataStore,\n action: DataStoreAction.Subscribe,\n };\n if (addFilter && predicatesGroup) {\n variables['filter'] =\n predicateToGraphQLFilter(predicatesGroup);\n }\n if (isOwner) {\n if (!ownerValue) {\n observer.error('Owner field required, sign in is needed in order to perform this operation');\n return [2 /*return*/];\n }\n variables[ownerField] = ownerValue;\n }\n logger.debug(\"Attempting \" + operation + \" subscription with authMode: \" + readAuthModes[operationAuthModeAttempts[operation]]);\n queryObservable = this.amplifyContext.InternalAPI.graphql(__assign(__assign({ query: query,\n variables: variables }, { authMode: authMode }), { authToken: authToken }), undefined, customUserAgentDetails);\n // TODO: consider onTerminate.then(() => API.cancel(...))\n subscriptions[modelDefinition.name][transformerMutationType].push(queryObservable\n .map(function (_a) {\n var value = _a.value;\n return value;\n })\n .subscribe({\n next: function (_a) {\n var data = _a.data, errors = _a.errors;\n if (Array.isArray(errors) && errors.length > 0) {\n var messages = errors.map(function (_a) {\n var message = _a.message;\n return message;\n });\n logger.warn(\"Skipping incoming subscription. Messages: \" + messages.join('\\n'));\n _this.drainBuffer();\n return;\n }\n var predicatesGroup = ModelPredicateCreator.getPredicates(_this.syncPredicates.get(modelDefinition), false);\n // @ts-ignore\n var _b = data, _c = opName, record = _b[_c];\n // checking incoming subscription against syncPredicate.\n // once AppSync implements filters on subscriptions, we'll be\n // able to set these when establishing the subscription instead.\n // Until then, we'll need to filter inbound\n if (_this.passesPredicateValidation(record, predicatesGroup)) {\n _this.pushToBuffer(transformerMutationType, modelDefinition, record);\n }\n _this.drainBuffer();\n },\n error: function (subscriptionError) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, _d, message, isRTFError, e_1;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = subscriptionError.error, _b = __read((_a === void 0 ? {\n errors: [],\n } : _a).errors, 1), _c = _b[0], _d = (_c === void 0 ? {} : _c).message, message = _d === void 0 ? '' : _d;\n isRTFError = \n // only attempt catch if a filter variable was added to the subscription query\n addFilter &&\n this.catchRTFError(message, modelDefinition, predicatesGroup);\n // Catch RTF errors\n if (isRTFError) {\n // Unsubscribe and clear subscription array for model/operation\n subscriptions[modelDefinition.name][transformerMutationType].forEach(function (subscription) {\n return subscription.unsubscribe();\n });\n subscriptions[modelDefinition.name][transformerMutationType] = [];\n // retry subscription connection without filter\n subscriptionRetry(operation, false);\n return [2 /*return*/];\n }\n if (message.includes(PUBSUB_CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR) ||\n message.includes(PUBSUB_CONTROL_MSG.CONNECTION_FAILED)) {\n // Unsubscribe and clear subscription array for model/operation\n subscriptions[modelDefinition.name][transformerMutationType].forEach(function (subscription) {\n return subscription.unsubscribe();\n });\n subscriptions[modelDefinition.name][transformerMutationType] = [];\n operationAuthModeAttempts[operation]++;\n if (operationAuthModeAttempts[operation] >=\n readAuthModes.length) {\n // last auth mode retry. Continue with error\n logger.debug(operation + \" subscription failed with authMode: \" + readAuthModes[operationAuthModeAttempts[operation] - 1]);\n }\n else {\n // retry with different auth mode. Do not trigger\n // observer error or error handler\n logger.debug(operation + \" subscription failed with authMode: \" + readAuthModes[operationAuthModeAttempts[operation] - 1] + \". Retrying with authMode: \" + readAuthModes[operationAuthModeAttempts[operation]]);\n subscriptionRetry(operation);\n return [2 /*return*/];\n }\n }\n logger.warn('subscriptionError', message);\n _e.label = 1;\n case 1:\n _e.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: null,\n message: message,\n model: modelDefinition.name,\n operation: operation,\n errorType: getSubscriptionErrorType(subscriptionError),\n process: ProcessName.subscribe,\n remoteModel: null,\n cause: subscriptionError,\n })];\n case 2:\n _e.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _e.sent();\n logger.error('Subscription error handler failed with:', e_1);\n return [3 /*break*/, 4];\n case 4:\n if (typeof subscriptionReadyCallback === 'function') {\n subscriptionReadyCallback();\n }\n if (message.includes('\"errorType\":\"Unauthorized\"') ||\n message.includes('\"errorType\":\"OperationDisabled\"')) {\n return [2 /*return*/];\n }\n observer.error(message);\n return [2 /*return*/];\n }\n });\n }); },\n }));\n promises.push((function () { return __awaiter(_this, void 0, void 0, function () {\n var boundFunction;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (res) {\n subscriptionReadyCallback = res;\n boundFunction = _this.hubQueryCompletionListener.bind(_this, res);\n Hub.listen('api', boundFunction);\n })];\n case 1:\n _a.sent();\n Hub.remove('api', boundFunction);\n return [2 /*return*/];\n }\n });\n }); })());\n return [2 /*return*/];\n }\n });\n });\n };\n operations.forEach(function (op) { return subscriptionRetry(op); });\n return [2 /*return*/];\n }\n });\n }); });\n });\n });\n this.runningProcesses.isOpen &&\n this.runningProcesses.add(function () {\n return Promise.all(promises).then(function () {\n observer.next(CONTROL_MSG.CONNECTED);\n });\n });\n return [2 /*return*/];\n }\n });\n }); }, 'subscription processor new subscriber');\n return _this.runningProcesses.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n Object.keys(subscriptions).forEach(function (modelName) {\n subscriptions[modelName][TransformerMutationType.CREATE].forEach(function (subscription) { return subscription.unsubscribe(); });\n subscriptions[modelName][TransformerMutationType.UPDATE].forEach(function (subscription) { return subscription.unsubscribe(); });\n subscriptions[modelName][TransformerMutationType.DELETE].forEach(function (subscription) { return subscription.unsubscribe(); });\n });\n return [2 /*return*/];\n });\n }); });\n });\n var dataObservable = new Observable(function (observer) {\n _this.dataObserver = observer;\n _this.drainBuffer();\n return _this.runningProcesses.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.dataObserver = null;\n return [2 /*return*/];\n });\n }); });\n });\n return [ctlObservable, dataObservable];\n };\n SubscriptionProcessor.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.runningProcesses.close()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.runningProcesses.open()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n SubscriptionProcessor.prototype.passesPredicateValidation = function (record, predicatesGroup) {\n if (!predicatesGroup) {\n return true;\n }\n var predicates = predicatesGroup.predicates, type = predicatesGroup.type;\n return validatePredicate(record, type, predicates);\n };\n SubscriptionProcessor.prototype.pushToBuffer = function (transformerMutationType, modelDefinition, data) {\n this.buffer.push([transformerMutationType, modelDefinition, data]);\n };\n SubscriptionProcessor.prototype.drainBuffer = function () {\n var _this = this;\n if (this.dataObserver) {\n this.buffer.forEach(function (data) { return _this.dataObserver.next(data); });\n this.buffer = [];\n }\n };\n /**\n * @returns true if the service returned an RTF subscription error\n * @remarks logs a warning with remediation instructions\n *\n */\n SubscriptionProcessor.prototype.catchRTFError = function (message, modelDefinition, predicatesGroup) {\n var header = 'Backend subscriptions filtering error.\\n' +\n 'Subscriptions filtering will be applied clientside.\\n';\n var messageErrorTypeMap = {\n 'UnknownArgument: Unknown field argument filter': RTFError.UnknownField,\n 'Filters exceed maximum attributes limit': RTFError.MaxAttributes,\n 'Filters combination exceed maximum limit': RTFError.MaxCombinations,\n 'filter uses same fieldName multiple time': RTFError.RepeatedFieldname,\n \"The variables input contains a field name 'not'\": RTFError.NotGroup,\n 'The variables input contains a field that is not defined for input object type': RTFError.FieldNotInType,\n };\n var _a = __read(Object.entries(messageErrorTypeMap).find(function (_a) {\n var _b = __read(_a, 1), errorMsg = _b[0];\n return message.includes(errorMsg);\n }) || [], 2), _errorMsg = _a[0], errorType = _a[1];\n if (errorType !== undefined) {\n var remediationMessage = generateRTFRemediation(errorType, modelDefinition, predicatesGroup);\n logger.warn(header + \"\\n\" + message + \"\\n\" + remediationMessage);\n return true;\n }\n return false;\n };\n return SubscriptionProcessor;\n}());\nexport { SubscriptionProcessor };\n//# sourceMappingURL=subscription.js.map","import { __awaiter, __generator, __read, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode, ConsoleLogger as Logger, BackgroundProcessManager, Hub, } from '@aws-amplify/core';\nimport { CONTROL_MSG as PUBSUB_CONTROL_MSG, CONNECTION_STATE_CHANGE as PUBSUB_CONNECTION_STATE_CHANGE, ConnectionState, } from '@aws-amplify/pubsub';\nimport Observable from 'zen-observable-ts';\nimport { ModelPredicateCreator } from '../predicates';\nimport { OpType, } from '../types';\nimport { getNow, SYNC, USER } from '../util';\nimport DataStoreConnectivity from './datastoreConnectivity';\nimport { ModelMerger } from './merger';\nimport { MutationEventOutbox } from './outbox';\nimport { MutationProcessor } from './processors/mutation';\nimport { CONTROL_MSG, SubscriptionProcessor } from './processors/subscription';\nimport { SyncProcessor } from './processors/sync';\nimport { createMutationInstanceFromModelOperation, getIdentifierValue, predicateToGraphQLCondition, } from './utils';\nvar isNode = browserOrNode().isNode;\nvar logger = new Logger('DataStore');\nvar ownSymbol = Symbol('sync');\nexport var ControlMessage;\n(function (ControlMessage) {\n ControlMessage[\"SYNC_ENGINE_STORAGE_SUBSCRIBED\"] = \"storageSubscribed\";\n ControlMessage[\"SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED\"] = \"subscriptionsEstablished\";\n ControlMessage[\"SYNC_ENGINE_SYNC_QUERIES_STARTED\"] = \"syncQueriesStarted\";\n ControlMessage[\"SYNC_ENGINE_SYNC_QUERIES_READY\"] = \"syncQueriesReady\";\n ControlMessage[\"SYNC_ENGINE_MODEL_SYNCED\"] = \"modelSynced\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_MUTATION_ENQUEUED\"] = \"outboxMutationEnqueued\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_MUTATION_PROCESSED\"] = \"outboxMutationProcessed\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_STATUS\"] = \"outboxStatus\";\n ControlMessage[\"SYNC_ENGINE_NETWORK_STATUS\"] = \"networkStatus\";\n ControlMessage[\"SYNC_ENGINE_READY\"] = \"ready\";\n})(ControlMessage || (ControlMessage = {}));\nvar SyncEngine = /** @class */ (function () {\n function SyncEngine(schema, namespaceResolver, modelClasses, userModelClasses, storage, modelInstanceCreator, conflictHandler, errorHandler, syncPredicates, amplifyConfig, authModeStrategy, amplifyContext, connectivityMonitor) {\n var _this = this;\n if (amplifyConfig === void 0) { amplifyConfig = {}; }\n this.schema = schema;\n this.namespaceResolver = namespaceResolver;\n this.modelClasses = modelClasses;\n this.userModelClasses = userModelClasses;\n this.storage = storage;\n this.modelInstanceCreator = modelInstanceCreator;\n this.syncPredicates = syncPredicates;\n this.amplifyConfig = amplifyConfig;\n this.authModeStrategy = authModeStrategy;\n this.amplifyContext = amplifyContext;\n this.connectivityMonitor = connectivityMonitor;\n this.online = false;\n this.modelSyncedStatus = new WeakMap();\n this.connectionDisrupted = false;\n this.runningProcesses = new BackgroundProcessManager();\n this.waitForSleepState = new Promise(function (resolve) {\n _this.syncQueriesObservableStartSleeping = resolve;\n });\n var MutationEvent = this.modelClasses['MutationEvent'];\n this.outbox = new MutationEventOutbox(this.schema, MutationEvent, modelInstanceCreator, ownSymbol);\n this.modelMerger = new ModelMerger(this.outbox, ownSymbol);\n this.syncQueriesProcessor = new SyncProcessor(this.schema, this.syncPredicates, this.amplifyConfig, this.authModeStrategy, errorHandler, this.amplifyContext);\n this.subscriptionsProcessor = new SubscriptionProcessor(this.schema, this.syncPredicates, this.amplifyConfig, this.authModeStrategy, errorHandler, this.amplifyContext);\n this.mutationsProcessor = new MutationProcessor(this.schema, this.storage, this.userModelClasses, this.outbox, this.modelInstanceCreator, MutationEvent, this.amplifyConfig, this.authModeStrategy, errorHandler, conflictHandler, this.amplifyContext);\n this.datastoreConnectivity =\n this.connectivityMonitor || new DataStoreConnectivity();\n }\n SyncEngine.prototype.getModelSyncedStatus = function (modelConstructor) {\n return this.modelSyncedStatus.get(modelConstructor);\n };\n SyncEngine.prototype.start = function (params) {\n var _this = this;\n return new Observable(function (observer) {\n logger.log('starting sync engine...');\n var subscriptions = [];\n _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var err_1, startPromise, hasMutationsInOutbox;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.setupModels(params)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n observer.error(err_1);\n return [2 /*return*/];\n case 3:\n startPromise = new Promise(function (doneStarting, failedStarting) {\n _this.datastoreConnectivity.status().subscribe(function (_a) {\n var online = _a.online;\n return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_b) {\n return [2 /*return*/, this.runningProcesses.isOpen &&\n this.runningProcesses.add(function (onTerminate) { return __awaiter(_this, void 0, void 0, function () {\n var ctlSubsObservable_1, dataSubsObservable, err_2, error_1;\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(online && !this.online)) return [3 /*break*/, 10];\n this.online = online;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_NETWORK_STATUS,\n data: {\n active: this.online,\n },\n });\n dataSubsObservable = void 0;\n if (!isNode) return [3 /*break*/, 1];\n logger.warn('Realtime disabled when in a server-side environment');\n return [3 /*break*/, 6];\n case 1:\n this.stopDisruptionListener =\n this.startDisruptionListener();\n //#region GraphQL Subscriptions\n _a = __read(this.subscriptionsProcessor.start(), 2), ctlSubsObservable_1 = _a[0], dataSubsObservable = _a[1];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n onTerminate.then(reject);\n var ctlSubsSubscription = ctlSubsObservable_1.subscribe({\n next: function (msg) {\n if (msg === CONTROL_MSG.CONNECTED) {\n resolve();\n }\n },\n error: function (err) {\n reject(err);\n var handleDisconnect = _this.disconnectionHandler();\n handleDisconnect(err);\n },\n });\n subscriptions.push(ctlSubsSubscription);\n })];\n case 3:\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_2 = _b.sent();\n observer.error(err_2);\n failedStarting();\n return [2 /*return*/];\n case 5:\n logger.log('Realtime ready');\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED,\n });\n _b.label = 6;\n case 6:\n _b.trys.push([6, 8, , 9]);\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n var syncQuerySubscription = _this.syncQueriesObservable().subscribe({\n next: function (message) {\n var type = message.type;\n if (type ===\n ControlMessage.SYNC_ENGINE_SYNC_QUERIES_READY) {\n resolve();\n }\n observer.next(message);\n },\n complete: function () {\n resolve();\n },\n error: function (error) {\n reject(error);\n },\n });\n if (syncQuerySubscription) {\n subscriptions.push(syncQuerySubscription);\n }\n })];\n case 7:\n _b.sent();\n return [3 /*break*/, 9];\n case 8:\n error_1 = _b.sent();\n observer.error(error_1);\n failedStarting();\n return [2 /*return*/];\n case 9:\n //#endregion\n //#region process mutations (outbox)\n subscriptions.push(this.mutationsProcessor\n .start()\n .subscribe(function (_a) {\n var modelDefinition = _a.modelDefinition, item = _a.model, hasMore = _a.hasMore;\n return _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var modelConstructor, model;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modelConstructor = this.userModelClasses[modelDefinition.name];\n model = this.modelInstanceCreator(modelConstructor, item);\n return [4 /*yield*/, this.storage.runExclusive(function (storage) {\n return _this.modelMerger.merge(storage, model, modelDefinition);\n })];\n case 1:\n _a.sent();\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_MUTATION_PROCESSED,\n data: {\n model: modelConstructor,\n element: model,\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: !hasMore,\n },\n });\n return [2 /*return*/];\n }\n });\n }); }, 'mutation processor event');\n }));\n //#endregion\n //#region Merge subscriptions buffer\n // TODO: extract to function\n if (!isNode) {\n subscriptions.push(dataSubsObservable.subscribe(function (_a) {\n var _b = __read(_a, 3), _transformerMutationType = _b[0], modelDefinition = _b[1], item = _b[2];\n return _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var modelConstructor, model;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modelConstructor = this.userModelClasses[modelDefinition.name];\n model = this.modelInstanceCreator(modelConstructor, item);\n return [4 /*yield*/, this.storage.runExclusive(function (storage) {\n return _this.modelMerger.merge(storage, model, modelDefinition);\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }, 'subscription dataSubsObservable event');\n }));\n }\n return [3 /*break*/, 11];\n case 10:\n if (!online) {\n this.online = online;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_NETWORK_STATUS,\n data: {\n active: this.online,\n },\n });\n subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n subscriptions = [];\n }\n _b.label = 11;\n case 11:\n doneStarting();\n return [2 /*return*/];\n }\n });\n }); }, 'datastore connectivity event')];\n });\n });\n });\n });\n this.storage\n .observe(null, null, ownSymbol)\n .filter(function (_a) {\n var model = _a.model;\n var modelDefinition = _this.getModelDefinition(model);\n return modelDefinition.syncable === true;\n })\n .subscribe({\n next: function (_a) {\n var opType = _a.opType, model = _a.model, element = _a.element, condition = _a.condition;\n return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_b) {\n return [2 /*return*/, this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var namespace, MutationEventConstructor, modelDefinition, graphQLCondition, mutationEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n namespace = this.schema.namespaces[this.namespaceResolver(model)];\n MutationEventConstructor = this.modelClasses['MutationEvent'];\n modelDefinition = this.getModelDefinition(model);\n graphQLCondition = predicateToGraphQLCondition(condition, modelDefinition);\n mutationEvent = createMutationInstanceFromModelOperation(namespace.relationships, this.getModelDefinition(model), opType, model, element, graphQLCondition, MutationEventConstructor, this.modelInstanceCreator);\n return [4 /*yield*/, this.outbox.enqueue(this.storage, mutationEvent)];\n case 1:\n _a.sent();\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_MUTATION_ENQUEUED,\n data: {\n model: model,\n element: element,\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: false,\n },\n });\n return [4 /*yield*/, startPromise];\n case 2:\n _a.sent();\n // Set by the this.datastoreConnectivity.status().subscribe() loop\n if (this.online) {\n this.mutationsProcessor.resume();\n }\n return [2 /*return*/];\n }\n });\n }); }, 'storage event')];\n });\n });\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_STORAGE_SUBSCRIBED,\n });\n return [4 /*yield*/, this.outbox.peek(this.storage)];\n case 4:\n hasMutationsInOutbox = (_a.sent()) === undefined;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: hasMutationsInOutbox,\n },\n });\n return [4 /*yield*/, startPromise];\n case 5:\n _a.sent();\n observer.next({\n type: ControlMessage.SYNC_ENGINE_READY,\n });\n return [2 /*return*/];\n }\n });\n }); }, 'sync start');\n });\n };\n SyncEngine.prototype.getModelsMetadataWithNextFullSync = function (currentTimeStamp) {\n return __awaiter(this, void 0, void 0, function () {\n var modelLastSync, _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = Map.bind;\n return [4 /*yield*/, this.runningProcesses.add(function () { return _this.getModelsMetadata(); }, 'sync/index getModelsMetadataWithNextFullSync')];\n case 1:\n modelLastSync = new (_a.apply(Map, [void 0, (_b.sent()).map(function (_a) {\n var namespace = _a.namespace, model = _a.model, lastSync = _a.lastSync, lastFullSync = _a.lastFullSync, fullSyncInterval = _a.fullSyncInterval, lastSyncPredicate = _a.lastSyncPredicate;\n var nextFullSync = lastFullSync + fullSyncInterval;\n var syncFrom = !lastFullSync || nextFullSync < currentTimeStamp\n ? 0 // perform full sync if expired\n : lastSync; // perform delta sync\n return [\n _this.schema.namespaces[namespace].models[model],\n [namespace, syncFrom],\n ];\n })]))();\n return [2 /*return*/, modelLastSync];\n }\n });\n });\n };\n SyncEngine.prototype.syncQueriesObservable = function () {\n var _this = this;\n if (!this.online) {\n return Observable.of();\n }\n return new Observable(function (observer) {\n var syncQueriesSubscription;\n _this.runningProcesses.isOpen &&\n _this.runningProcesses.add(function (onTerminate) { return __awaiter(_this, void 0, void 0, function () {\n var terminated, _loop_1, this_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n terminated = false;\n _loop_1 = function () {\n var count, modelLastSync, paginatingModels, lastFullSyncStartedAt, syncInterval, start, syncDuration, lastStartedAt, msNextFullSync;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n count = new WeakMap();\n return [4 /*yield*/, this_1.getModelsMetadataWithNextFullSync(Date.now())];\n case 1:\n modelLastSync = _a.sent();\n paginatingModels = new Set(modelLastSync.keys());\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n if (!_this.runningProcesses.isOpen)\n resolve();\n onTerminate.then(function () { return resolve(); });\n syncQueriesSubscription = _this.syncQueriesProcessor\n .start(modelLastSync)\n .subscribe({\n next: function (_a) {\n var namespace = _a.namespace, modelDefinition = _a.modelDefinition, items = _a.items, done = _a.done, startedAt = _a.startedAt, isFullSync = _a.isFullSync;\n return __awaiter(_this, void 0, void 0, function () {\n var modelConstructor, modelName, modelMetadata_1, lastFullSync, fullSyncInterval, counts;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n modelConstructor = this.userModelClasses[modelDefinition.name];\n if (!count.has(modelConstructor)) {\n count.set(modelConstructor, {\n new: 0,\n updated: 0,\n deleted: 0,\n });\n start = getNow();\n lastStartedAt =\n lastStartedAt === undefined\n ? startedAt\n : Math.max(lastStartedAt, startedAt);\n }\n /**\n * If there are mutations in the outbox for a given id, those need to be\n * merged individually. Otherwise, we can merge them in batches.\n */\n return [4 /*yield*/, this.storage.runExclusive(function (storage) { return __awaiter(_this, void 0, void 0, function () {\n var idsInOutbox, oneByOne, page, opTypeCount, oneByOne_1, oneByOne_1_1, item, opType, e_1_1, _a, _b, _c, counts;\n var e_1, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0: return [4 /*yield*/, this.outbox.getModelIds(storage)];\n case 1:\n idsInOutbox = _e.sent();\n oneByOne = [];\n page = items.filter(function (item) {\n var itemId = getIdentifierValue(modelDefinition, item);\n if (!idsInOutbox.has(itemId)) {\n return true;\n }\n oneByOne.push(item);\n return false;\n });\n opTypeCount = [];\n _e.label = 2;\n case 2:\n _e.trys.push([2, 7, 8, 9]);\n oneByOne_1 = __values(oneByOne), oneByOne_1_1 = oneByOne_1.next();\n _e.label = 3;\n case 3:\n if (!!oneByOne_1_1.done) return [3 /*break*/, 6];\n item = oneByOne_1_1.value;\n return [4 /*yield*/, this.modelMerger.merge(storage, item, modelDefinition)];\n case 4:\n opType = _e.sent();\n if (opType !== undefined) {\n opTypeCount.push([item, opType]);\n }\n _e.label = 5;\n case 5:\n oneByOne_1_1 = oneByOne_1.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _e.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (oneByOne_1_1 && !oneByOne_1_1.done && (_d = oneByOne_1.return)) _d.call(oneByOne_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9:\n _b = (_a = opTypeCount.push).apply;\n _c = [opTypeCount];\n return [4 /*yield*/, this.modelMerger.mergePage(storage, modelConstructor, page, modelDefinition)];\n case 10:\n _b.apply(_a, _c.concat([__spread.apply(void 0, [(_e.sent())])]));\n counts = count.get(modelConstructor);\n opTypeCount.forEach(function (_a) {\n var _b = __read(_a, 2), opType = _b[1];\n switch (opType) {\n case OpType.INSERT:\n counts.new++;\n break;\n case OpType.UPDATE:\n counts.updated++;\n break;\n case OpType.DELETE:\n counts.deleted++;\n break;\n default:\n throw new Error(\"Invalid opType \" + opType);\n }\n });\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n /**\n * If there are mutations in the outbox for a given id, those need to be\n * merged individually. Otherwise, we can merge them in batches.\n */\n _b.sent();\n if (!done) return [3 /*break*/, 4];\n modelName = modelDefinition.name;\n return [4 /*yield*/, this.getModelMetadata(namespace, modelName)];\n case 2:\n modelMetadata_1 = _b.sent();\n lastFullSync = modelMetadata_1.lastFullSync, fullSyncInterval = modelMetadata_1.fullSyncInterval;\n syncInterval = fullSyncInterval;\n lastFullSyncStartedAt =\n lastFullSyncStartedAt === undefined\n ? lastFullSync\n : Math.max(lastFullSyncStartedAt, isFullSync ? startedAt : lastFullSync);\n modelMetadata_1 = this.modelClasses\n .ModelMetadata.copyOf(modelMetadata_1, function (draft) {\n draft.lastSync = startedAt;\n draft.lastFullSync = isFullSync\n ? startedAt\n : modelMetadata_1.lastFullSync;\n });\n return [4 /*yield*/, this.storage.save(modelMetadata_1, undefined, ownSymbol)];\n case 3:\n _b.sent();\n counts = count.get(modelConstructor);\n this.modelSyncedStatus.set(modelConstructor, true);\n observer.next({\n type: ControlMessage.SYNC_ENGINE_MODEL_SYNCED,\n data: {\n model: modelConstructor,\n isFullSync: isFullSync,\n isDeltaSync: !isFullSync,\n counts: counts,\n },\n });\n paginatingModels.delete(modelDefinition);\n if (paginatingModels.size === 0) {\n syncDuration = getNow() - start;\n resolve();\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SYNC_QUERIES_READY,\n });\n syncQueriesSubscription.unsubscribe();\n }\n _b.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n },\n error: function (error) {\n observer.error(error);\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SYNC_QUERIES_STARTED,\n data: {\n models: Array.from(paginatingModels).map(function (_a) {\n var name = _a.name;\n return name;\n }),\n },\n });\n })];\n case 2:\n _a.sent();\n if (!lastFullSyncStartedAt) {\n msNextFullSync = syncInterval - syncDuration;\n }\n else {\n msNextFullSync =\n lastFullSyncStartedAt +\n syncInterval -\n (lastStartedAt + syncDuration);\n }\n logger.debug(\"Next fullSync in \" + msNextFullSync / 1000 + \" seconds. (\" + new Date(Date.now() + msNextFullSync) + \")\");\n // TODO: create `BackgroundProcessManager.sleep()` ... but, need to put\n // a lot of thought into what that contract looks like to\n // support possible use-cases:\n //\n // 1. non-cancelable\n // 2. cancelable, unsleep on exit()\n // 3. cancelable, throw Error on exit()\n // 4. cancelable, callback first on exit()?\n // 5. ... etc. ? ...\n //\n // TLDR; this is a lot of complexity here for a sleep(),\n // but, it's not clear to me yet how to support an\n // extensible, centralized cancelable `sleep()` elegantly.\n return [4 /*yield*/, this_1.runningProcesses.add(function (onTerminate) { return __awaiter(_this, void 0, void 0, function () {\n var sleepTimer, unsleep, sleep;\n var _this = this;\n return __generator(this, function (_a) {\n sleep = new Promise(function (_unsleep) {\n unsleep = _unsleep;\n sleepTimer = setTimeout(unsleep, msNextFullSync);\n });\n onTerminate.then(function () {\n terminated = true;\n _this.syncQueriesObservableStartSleeping();\n unsleep();\n });\n this.unsleepSyncQueriesObservable = unsleep;\n this.syncQueriesObservableStartSleeping();\n return [2 /*return*/, sleep];\n });\n }); }, 'syncQueriesObservable sleep')];\n case 3:\n // TODO: create `BackgroundProcessManager.sleep()` ... but, need to put\n // a lot of thought into what that contract looks like to\n // support possible use-cases:\n //\n // 1. non-cancelable\n // 2. cancelable, unsleep on exit()\n // 3. cancelable, throw Error on exit()\n // 4. cancelable, callback first on exit()?\n // 5. ... etc. ? ...\n //\n // TLDR; this is a lot of complexity here for a sleep(),\n // but, it's not clear to me yet how to support an\n // extensible, centralized cancelable `sleep()` elegantly.\n _a.sent();\n this_1.unsleepSyncQueriesObservable = null;\n this_1.waitForSleepState = new Promise(function (resolve) {\n _this.syncQueriesObservableStartSleeping = resolve;\n });\n return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 1;\n case 1:\n if (!(!observer.closed && !terminated)) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n }); }, 'syncQueriesObservable main');\n });\n };\n SyncEngine.prototype.disconnectionHandler = function () {\n var _this = this;\n return function (msg) {\n // This implementation is tied to AWSAppSyncRealTimeProvider 'Connection closed', 'Timeout disconnect' msg\n if (PUBSUB_CONTROL_MSG.CONNECTION_CLOSED === msg ||\n PUBSUB_CONTROL_MSG.TIMEOUT_DISCONNECT === msg) {\n _this.datastoreConnectivity.socketDisconnected();\n }\n };\n };\n SyncEngine.prototype.unsubscribeConnectivity = function () {\n this.datastoreConnectivity.unsubscribe();\n };\n /**\n * Stops all subscription activities and resolves when all activies report\n * that they're disconnected, done retrying, etc..\n */\n SyncEngine.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('stopping sync engine');\n /**\n * Gracefully disconnecting subscribers first just prevents *more* work\n * from entering the pipelines.\n */\n this.unsubscribeConnectivity();\n /**\n * Stop listening for websocket connection disruption\n */\n this.stopDisruptionListener && this.stopDisruptionListener();\n /**\n * aggressively shut down any lingering background processes.\n * some of this might be semi-redundant with unsubscribing. however,\n * unsubscribing doesn't allow us to wait for settling.\n * (Whereas `stop()` does.)\n */\n return [4 /*yield*/, this.mutationsProcessor.stop()];\n case 1:\n /**\n * aggressively shut down any lingering background processes.\n * some of this might be semi-redundant with unsubscribing. however,\n * unsubscribing doesn't allow us to wait for settling.\n * (Whereas `stop()` does.)\n */\n _a.sent();\n return [4 /*yield*/, this.subscriptionsProcessor.stop()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.datastoreConnectivity.stop()];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.syncQueriesProcessor.stop()];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.runningProcesses.close()];\n case 5:\n _a.sent();\n return [4 /*yield*/, this.runningProcesses.open()];\n case 6:\n _a.sent();\n logger.debug('sync engine stopped and ready to restart');\n return [2 /*return*/];\n }\n });\n });\n };\n SyncEngine.prototype.setupModels = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var fullSyncInterval, ModelMetadataConstructor, models, savedModel, promises, result, _a, _b, modelMetadata, modelName, e_2_1;\n var e_2, _c;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n fullSyncInterval = params.fullSyncInterval;\n ModelMetadataConstructor = this.modelClasses\n .ModelMetadata;\n models = [];\n Object.values(this.schema.namespaces).forEach(function (namespace) {\n Object.values(namespace.models)\n .filter(function (_a) {\n var syncable = _a.syncable;\n return syncable;\n })\n .forEach(function (model) {\n models.push([namespace.name, model]);\n if (namespace.name === USER) {\n var modelConstructor = _this.userModelClasses[model.name];\n _this.modelSyncedStatus.set(modelConstructor, false);\n }\n });\n });\n promises = models.map(function (_a) {\n var _b = __read(_a, 2), namespace = _b[0], model = _b[1];\n return __awaiter(_this, void 0, void 0, function () {\n var modelMetadata, syncPredicate, lastSyncPredicate, prevSyncPredicate, syncPredicateUpdated_1;\n var _c, _d, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0: return [4 /*yield*/, this.getModelMetadata(namespace, model.name)];\n case 1:\n modelMetadata = _g.sent();\n syncPredicate = ModelPredicateCreator.getPredicates(this.syncPredicates.get(model), false);\n lastSyncPredicate = syncPredicate\n ? JSON.stringify(syncPredicate)\n : null;\n if (!(modelMetadata === undefined)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.storage.save(this.modelInstanceCreator(ModelMetadataConstructor, {\n model: model.name,\n namespace: namespace,\n lastSync: null,\n fullSyncInterval: fullSyncInterval,\n lastFullSync: null,\n lastSyncPredicate: lastSyncPredicate,\n }), undefined, ownSymbol)];\n case 2:\n _c = __read.apply(void 0, [_g.sent(), 1]), _d = __read(_c[0], 1), savedModel = _d[0];\n return [3 /*break*/, 5];\n case 3:\n prevSyncPredicate = modelMetadata.lastSyncPredicate\n ? modelMetadata.lastSyncPredicate\n : null;\n syncPredicateUpdated_1 = prevSyncPredicate !== lastSyncPredicate;\n return [4 /*yield*/, this.storage.save(ModelMetadataConstructor.copyOf(modelMetadata, function (draft) {\n draft.fullSyncInterval = fullSyncInterval;\n // perform a base sync if the syncPredicate changed in between calls to DataStore.start\n // ensures that the local store contains all the data specified by the syncExpression\n if (syncPredicateUpdated_1) {\n draft.lastSync = null;\n draft.lastFullSync = null;\n draft.lastSyncPredicate = lastSyncPredicate;\n }\n }))];\n case 4:\n _e = __read.apply(void 0, [_g.sent(), 1]), _f = __read(_e[0], 1), savedModel = _f[0];\n _g.label = 5;\n case 5: return [2 /*return*/, savedModel];\n }\n });\n });\n });\n result = {};\n _d.label = 1;\n case 1:\n _d.trys.push([1, 6, 7, 8]);\n return [4 /*yield*/, Promise.all(promises)];\n case 2:\n _a = __values.apply(void 0, [_d.sent()]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 5];\n modelMetadata = _b.value;\n modelName = modelMetadata.model;\n result[modelName] = modelMetadata;\n _d.label = 4;\n case 4:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_2_1 = _d.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/, result];\n }\n });\n });\n };\n SyncEngine.prototype.getModelsMetadata = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ModelMetadata, modelsMetadata;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ModelMetadata = this.modelClasses\n .ModelMetadata;\n return [4 /*yield*/, this.storage.query(ModelMetadata)];\n case 1:\n modelsMetadata = _a.sent();\n return [2 /*return*/, modelsMetadata];\n }\n });\n });\n };\n SyncEngine.prototype.getModelMetadata = function (namespace, model) {\n return __awaiter(this, void 0, void 0, function () {\n var ModelMetadata, predicate, _a, modelMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n ModelMetadata = this.modelClasses\n .ModelMetadata;\n predicate = ModelPredicateCreator.createFromAST(this.schema.namespaces[SYNC].models[ModelMetadata.name], { and: [{ namespace: { eq: namespace } }, { model: { eq: model } }] });\n return [4 /*yield*/, this.storage.query(ModelMetadata, predicate, {\n page: 0,\n limit: 1,\n })];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 1]), modelMetadata = _a[0];\n return [2 /*return*/, modelMetadata];\n }\n });\n });\n };\n SyncEngine.prototype.getModelDefinition = function (modelConstructor) {\n var namespaceName = this.namespaceResolver(modelConstructor);\n var modelDefinition = this.schema.namespaces[namespaceName].models[modelConstructor.name];\n return modelDefinition;\n };\n SyncEngine.getNamespace = function () {\n var namespace = {\n name: SYNC,\n relationships: {},\n enums: {\n OperationType: {\n name: 'OperationType',\n values: ['CREATE', 'UPDATE', 'DELETE'],\n },\n },\n nonModels: {},\n models: {\n MutationEvent: {\n name: 'MutationEvent',\n pluralName: 'MutationEvents',\n syncable: false,\n fields: {\n id: {\n name: 'id',\n type: 'ID',\n isRequired: true,\n isArray: false,\n },\n model: {\n name: 'model',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n data: {\n name: 'data',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n modelId: {\n name: 'modelId',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n operation: {\n name: 'operation',\n type: {\n enum: 'Operationtype',\n },\n isArray: false,\n isRequired: true,\n },\n condition: {\n name: 'condition',\n type: 'String',\n isArray: false,\n isRequired: true,\n },\n },\n },\n ModelMetadata: {\n name: 'ModelMetadata',\n pluralName: 'ModelsMetadata',\n syncable: false,\n fields: {\n id: {\n name: 'id',\n type: 'ID',\n isRequired: true,\n isArray: false,\n },\n namespace: {\n name: 'namespace',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n model: {\n name: 'model',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n lastSync: {\n name: 'lastSync',\n type: 'Int',\n isRequired: false,\n isArray: false,\n },\n lastFullSync: {\n name: 'lastFullSync',\n type: 'Int',\n isRequired: false,\n isArray: false,\n },\n fullSyncInterval: {\n name: 'fullSyncInterval',\n type: 'Int',\n isRequired: true,\n isArray: false,\n },\n lastSyncPredicate: {\n name: 'lastSyncPredicate',\n type: 'String',\n isRequired: false,\n isArray: false,\n },\n },\n },\n },\n };\n return namespace;\n };\n /**\n * listen for websocket connection disruption\n *\n * May indicate there was a period of time where messages\n * from AppSync were missed. A sync needs to be triggered to\n * retrieve the missed data.\n */\n SyncEngine.prototype.startDisruptionListener = function () {\n var _this = this;\n return Hub.listen('api', function (data) {\n if (data.source === 'PubSub' &&\n data.payload.event === PUBSUB_CONNECTION_STATE_CHANGE) {\n var connectionState = data.payload.data\n .connectionState;\n switch (connectionState) {\n // Do not need to listen for ConnectionDisruptedPendingNetwork\n // Normal network reconnection logic will handle the sync\n case ConnectionState.ConnectionDisrupted:\n _this.connectionDisrupted = true;\n break;\n case ConnectionState.Connected:\n if (_this.connectionDisrupted) {\n _this.scheduleSync();\n }\n _this.connectionDisrupted = false;\n break;\n }\n }\n });\n };\n /*\n * Schedule a sync to start when syncQueriesObservable enters sleep state\n * Start sync immediately if syncQueriesObservable is already in sleep state\n */\n SyncEngine.prototype.scheduleSync = function () {\n var _this = this;\n return (this.runningProcesses.isOpen &&\n this.runningProcesses.add(function () {\n return _this.waitForSleepState.then(function () {\n // unsleepSyncQueriesObservable will be set if waitForSleepState has resolved\n _this.unsleepSyncQueriesObservable();\n });\n }));\n };\n return SyncEngine;\n}());\nexport { SyncEngine };\n//# sourceMappingURL=index.js.map","import { __awaiter, __generator, __read, __values } from \"tslib\";\nimport { InternalAPI } from '@aws-amplify/api/internals';\nimport Observable from 'zen-observable-ts';\nimport { ProcessName, } from '../../types';\nimport { buildGraphQLOperation, getModelAuthModes, getClientSideAuthError, getForbiddenError, predicateToGraphQLFilter, getTokenForCustomAuth, } from '../utils';\nimport { jitteredExponentialRetry, Category, ConsoleLogger as Logger, DataStoreAction, Hub, NonRetryableError, BackgroundProcessManager, } from '@aws-amplify/core';\nimport { ModelPredicateCreator } from '../../predicates';\nimport { getSyncErrorType } from './errorMaps';\nvar opResultDefaults = {\n items: [],\n nextToken: null,\n startedAt: null,\n};\nvar logger = new Logger('DataStore');\nvar SyncProcessor = /** @class */ (function () {\n function SyncProcessor(schema, syncPredicates, amplifyConfig, authModeStrategy, errorHandler, amplifyContext) {\n if (amplifyConfig === void 0) { amplifyConfig = {}; }\n this.schema = schema;\n this.syncPredicates = syncPredicates;\n this.amplifyConfig = amplifyConfig;\n this.authModeStrategy = authModeStrategy;\n this.errorHandler = errorHandler;\n this.amplifyContext = amplifyContext;\n this.typeQuery = new WeakMap();\n this.runningProcesses = new BackgroundProcessManager();\n amplifyContext.InternalAPI = amplifyContext.InternalAPI || InternalAPI;\n this.generateQueries();\n }\n SyncProcessor.prototype.generateQueries = function () {\n var _this = this;\n Object.values(this.schema.namespaces).forEach(function (namespace) {\n Object.values(namespace.models)\n .filter(function (_a) {\n var syncable = _a.syncable;\n return syncable;\n })\n .forEach(function (model) {\n var _a = __read(buildGraphQLOperation(namespace, model, 'LIST'), 1), _b = __read(_a[0]), opNameQuery = _b.slice(1);\n _this.typeQuery.set(model, opNameQuery);\n });\n });\n };\n SyncProcessor.prototype.graphqlFilterFromPredicate = function (model) {\n if (!this.syncPredicates) {\n return null;\n }\n var predicatesGroup = ModelPredicateCreator.getPredicates(this.syncPredicates.get(model), false);\n if (!predicatesGroup) {\n return null;\n }\n return predicateToGraphQLFilter(predicatesGroup);\n };\n SyncProcessor.prototype.retrievePage = function (modelDefinition, lastSync, nextToken, limit, filter, onTerminate) {\n if (limit === void 0) { limit = null; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, opName, query, variables, modelAuthModes, readAuthModes, authModeAttempts, authModeRetry, data, _b, _c, opResult, items, newNextToken, startedAt;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = __read(this.typeQuery.get(modelDefinition), 2), opName = _a[0], query = _a[1];\n variables = {\n limit: limit,\n nextToken: nextToken,\n lastSync: lastSync,\n filter: filter,\n };\n return [4 /*yield*/, getModelAuthModes({\n authModeStrategy: this.authModeStrategy,\n defaultAuthMode: this.amplifyConfig.aws_appsync_authenticationType,\n modelName: modelDefinition.name,\n schema: this.schema,\n })];\n case 1:\n modelAuthModes = _d.sent();\n readAuthModes = modelAuthModes.READ;\n authModeAttempts = 0;\n authModeRetry = function () { return __awaiter(_this, void 0, void 0, function () {\n var response, error_1, authMode;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.runningProcesses.isOpen) {\n throw new Error('sync.retreievePage termination was requested. Exiting.');\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 5]);\n logger.debug(\"Attempting sync with authMode: \" + readAuthModes[authModeAttempts]);\n return [4 /*yield*/, this.jitteredRetry({\n query: query,\n variables: variables,\n opName: opName,\n modelDefinition: modelDefinition,\n authMode: readAuthModes[authModeAttempts],\n onTerminate: onTerminate,\n })];\n case 2:\n response = _b.sent();\n logger.debug(\"Sync successful with authMode: \" + readAuthModes[authModeAttempts]);\n return [2 /*return*/, response];\n case 3:\n error_1 = _b.sent();\n authModeAttempts++;\n if (authModeAttempts >= readAuthModes.length) {\n authMode = readAuthModes[authModeAttempts - 1];\n logger.debug(\"Sync failed with authMode: \" + authMode, error_1);\n if (getClientSideAuthError(error_1) || getForbiddenError(error_1)) {\n // return empty list of data so DataStore will continue to sync other models\n logger.warn(\"User is unauthorized to query \" + opName + \" with auth mode \" + authMode + \". No data could be returned.\");\n return [2 /*return*/, {\n data: (_a = {},\n _a[opName] = opResultDefaults,\n _a),\n }];\n }\n throw error_1;\n }\n logger.debug(\"Sync failed with authMode: \" + readAuthModes[authModeAttempts - 1] + \". Retrying with authMode: \" + readAuthModes[authModeAttempts]);\n return [4 /*yield*/, authModeRetry()];\n case 4: return [2 /*return*/, _b.sent()];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n return [4 /*yield*/, authModeRetry()];\n case 2:\n data = (_d.sent()).data;\n _b = data, _c = opName, opResult = _b[_c];\n items = opResult.items, newNextToken = opResult.nextToken, startedAt = opResult.startedAt;\n return [2 /*return*/, {\n nextToken: newNextToken,\n startedAt: startedAt,\n items: items,\n }];\n }\n });\n });\n };\n SyncProcessor.prototype.jitteredRetry = function (_a) {\n var query = _a.query, variables = _a.variables, opName = _a.opName, modelDefinition = _a.modelDefinition, authMode = _a.authMode, onTerminate = _a.onTerminate;\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, jitteredExponentialRetry(function (query, variables) { return __awaiter(_this, void 0, void 0, function () {\n var authToken, customUserAgentDetails, error_2, clientOrForbiddenErrorMessage, hasItems, unauthorized, otherErrors, result;\n var _this = this;\n var _a, _b, _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _e.trys.push([0, 3, , 6]);\n return [4 /*yield*/, getTokenForCustomAuth(authMode, this.amplifyConfig)];\n case 1:\n authToken = _e.sent();\n customUserAgentDetails = {\n category: Category.DataStore,\n action: DataStoreAction.GraphQl,\n };\n return [4 /*yield*/, this.amplifyContext.InternalAPI.graphql({\n query: query,\n variables: variables,\n authMode: authMode,\n authToken: authToken,\n }, undefined, customUserAgentDetails)];\n case 2: return [2 /*return*/, _e.sent()];\n case 3:\n error_2 = _e.sent();\n clientOrForbiddenErrorMessage = getClientSideAuthError(error_2) || getForbiddenError(error_2);\n if (clientOrForbiddenErrorMessage) {\n logger.error('Sync processor retry error:', error_2);\n throw new NonRetryableError(clientOrForbiddenErrorMessage);\n }\n hasItems = Boolean((_b = (_a = error_2 === null || error_2 === void 0 ? void 0 : error_2.data) === null || _a === void 0 ? void 0 : _a[opName]) === null || _b === void 0 ? void 0 : _b.items);\n unauthorized = (error_2 === null || error_2 === void 0 ? void 0 : error_2.errors) &&\n error_2.errors.some(function (err) { return err.errorType === 'Unauthorized'; });\n otherErrors = (error_2 === null || error_2 === void 0 ? void 0 : error_2.errors) &&\n error_2.errors.filter(function (err) { return err.errorType !== 'Unauthorized'; });\n result = error_2;\n if (hasItems) {\n result.data[opName].items = result.data[opName].items.filter(function (item) { return item !== null; });\n }\n if (!(hasItems && (otherErrors === null || otherErrors === void 0 ? void 0 : otherErrors.length))) return [3 /*break*/, 5];\n return [4 /*yield*/, Promise.all(otherErrors.map(function (err) { return __awaiter(_this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: null,\n message: err.message,\n model: modelDefinition.name,\n operation: opName,\n errorType: getSyncErrorType(err),\n process: ProcessName.sync,\n remoteModel: null,\n cause: err,\n })];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n logger.error('Sync error handler failed with:', e_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }))];\n case 4:\n _e.sent();\n Hub.dispatch('datastore', {\n event: 'nonApplicableDataReceived',\n data: {\n errors: otherErrors,\n modelName: modelDefinition.name,\n },\n });\n _e.label = 5;\n case 5:\n /**\n * Handle $util.unauthorized() in resolver request mapper, which responses with something\n * like this:\n *\n * ```\n * {\n * \tdata: { syncYourModel: null },\n * \terrors: [\n * \t\t{\n * \t\t\tpath: ['syncLegacyJSONComments'],\n * \t\t\tdata: null,\n * \t\t\terrorType: 'Unauthorized',\n * \t\t\terrorInfo: null,\n * \t\t\tlocations: [{ line: 2, column: 3, sourceName: null }],\n * \t\t\tmessage:\n * \t\t\t\t'Not Authorized to access syncYourModel on type Query',\n * \t\t\t},\n * \t\t],\n * \t}\n * ```\n *\n * The correct handling for this is to signal that we've encountered a non-retryable error,\n * since the server has responded with an auth error and *NO DATA* at this point.\n */\n if (unauthorized) {\n this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: null,\n message: error_2.message,\n model: modelDefinition.name,\n operation: opName,\n errorType: getSyncErrorType(error_2.errors[0]),\n process: ProcessName.sync,\n remoteModel: null,\n cause: error_2,\n });\n throw new NonRetryableError(error_2);\n }\n if ((_d = (_c = result.data) === null || _c === void 0 ? void 0 : _c[opName].items) === null || _d === void 0 ? void 0 : _d.length) {\n return [2 /*return*/, result];\n }\n throw error_2;\n case 6: return [2 /*return*/];\n }\n });\n }); }, [query, variables], undefined, onTerminate)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n };\n SyncProcessor.prototype.start = function (typesLastSync) {\n var _this = this;\n var _a = this.amplifyConfig, maxRecordsToSync = _a.maxRecordsToSync, syncPageSize = _a.syncPageSize;\n var parentPromises = new Map();\n var observable = new Observable(function (observer) {\n var sortedTypesLastSyncs = Object.values(_this.schema.namespaces).reduce(function (map, namespace) {\n var e_2, _a;\n try {\n for (var _b = __values(Array.from(namespace.modelTopologicalOrdering.keys())), _c = _b.next(); !_c.done; _c = _b.next()) {\n var modelName = _c.value;\n var typeLastSync = typesLastSync.get(namespace.models[modelName]);\n map.set(namespace.models[modelName], typeLastSync);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return map;\n }, new Map());\n var allModelsReady = Array.from(sortedTypesLastSyncs.entries())\n .filter(function (_a) {\n var _b = __read(_a, 1), syncable = _b[0].syncable;\n return syncable;\n })\n .map(function (_a) {\n var _b = __read(_a, 2), modelDefinition = _b[0], _c = __read(_b[1], 2), namespace = _c[0], lastSync = _c[1];\n return _this.runningProcesses.isOpen &&\n _this.runningProcesses.add(function (onTerminate) { return __awaiter(_this, void 0, void 0, function () {\n var done, nextToken, startedAt, items, recordsReceived, filter, parents, promises, promise;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n done = false;\n nextToken = null;\n startedAt = null;\n items = null;\n recordsReceived = 0;\n filter = this.graphqlFilterFromPredicate(modelDefinition);\n parents = this.schema.namespaces[namespace].modelTopologicalOrdering.get(modelDefinition.name);\n promises = parents.map(function (parent) {\n return parentPromises.get(namespace + \"_\" + parent);\n });\n promise = new Promise(function (res) { return __awaiter(_this, void 0, void 0, function () {\n var limit, error_3, e_3;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n /**\n * If `runningProcesses` is not open, it means that the sync processor has been\n * stopped (for example by calling `DataStore.clear()` upstream) and has not yet\n * finished terminating and/or waiting for its background processes to complete.\n */\n if (!this.runningProcesses.isOpen) {\n logger.debug(\"Sync processor has been stopped, terminating sync for \" + modelDefinition.name);\n return [2 /*return*/, res()];\n }\n limit = Math.min(maxRecordsToSync - recordsReceived, syncPageSize);\n _b.label = 3;\n case 3:\n _b.trys.push([3, 5, , 10]);\n return [4 /*yield*/, this.retrievePage(modelDefinition, lastSync, nextToken, limit, filter, onTerminate)];\n case 4:\n (_a = _b.sent(), items = _a.items, nextToken = _a.nextToken, startedAt = _a.startedAt);\n return [3 /*break*/, 10];\n case 5:\n error_3 = _b.sent();\n _b.label = 6;\n case 6:\n _b.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.errorHandler({\n recoverySuggestion: 'Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues',\n localModel: null,\n message: error_3.message,\n model: modelDefinition.name,\n operation: null,\n errorType: getSyncErrorType(error_3),\n process: ProcessName.sync,\n remoteModel: null,\n cause: error_3,\n })];\n case 7:\n _b.sent();\n return [3 /*break*/, 9];\n case 8:\n e_3 = _b.sent();\n logger.error('Sync error handler failed with:', e_3);\n return [3 /*break*/, 9];\n case 9:\n /**\n * If there's an error, this model fails, but the rest of the sync should\n * continue. To facilitate this, we explicitly mark this model as `done`\n * with no items and allow the loop to continue organically. This ensures\n * all callbacks (subscription messages) happen as normal, so anything\n * waiting on them knows the model is as done as it can be.\n */\n done = true;\n items = [];\n return [3 /*break*/, 10];\n case 10:\n recordsReceived += items.length;\n done =\n nextToken === null || recordsReceived >= maxRecordsToSync;\n observer.next({\n namespace: namespace,\n modelDefinition: modelDefinition,\n items: items,\n done: done,\n startedAt: startedAt,\n isFullSync: !lastSync,\n });\n _b.label = 11;\n case 11:\n if (!done) return [3 /*break*/, 2];\n _b.label = 12;\n case 12:\n res();\n return [2 /*return*/];\n }\n });\n }); });\n parentPromises.set(namespace + \"_\" + modelDefinition.name, promise);\n return [4 /*yield*/, promise];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }, \"adding model \" + modelDefinition.name);\n });\n Promise.all(allModelsReady).then(function () {\n observer.complete();\n });\n });\n return observable;\n };\n SyncProcessor.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('stopping sync processor');\n return [4 /*yield*/, this.runningProcesses.close()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.runningProcesses.open()];\n case 2:\n _a.sent();\n logger.debug('sync processor stopped');\n return [2 /*return*/];\n }\n });\n });\n };\n return SyncProcessor;\n}());\nexport { SyncProcessor };\n//# sourceMappingURL=sync.js.map","import { __assign, __asyncValues, __awaiter, __generator, __read, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PredicateInternalsKey, } from '../types';\nimport { ModelPredicateCreator as FlatModelPredicateCreator, comparisonKeys, } from './index';\nimport { ModelRelationship } from '../storage/relationship';\nimport { asyncSome, asyncEvery } from '../util';\nvar ops = __spread(comparisonKeys);\n/**\n * A map from keys (exposed to customers) to the internal predicate data\n * structures invoking code should not muck with.\n */\nvar predicateInternalsMap = new Map();\n/**\n * Creates a link between a key (and generates a key if needed) and an internal\n * `GroupCondition`, which allows us to return a key object instead of the gory\n * conditions details to customers/invoking code.\n *\n * @param condition The internal condition to keep hidden.\n * @param key The object DataStore will use to find the internal condition.\n * If no key is given, an empty one is created.\n */\nvar registerPredicateInternals = function (condition, key) {\n var finalKey = key || new PredicateInternalsKey();\n predicateInternalsMap.set(finalKey, condition);\n return finalKey;\n};\n/**\n * Takes a key object from `registerPredicateInternals()` to fetch an internal\n * `GroupCondition` object, which can then be used to query storage or\n * test/match objects.\n *\n * This indirection exists to hide `GroupCondition` from public interfaces, since\n * `GroupCondition` contains extra methods and properties that public callers\n * should not use.\n *\n * @param key A key object previously returned by `registerPredicateInternals()`\n */\nexport var internals = function (key) {\n if (!predicateInternalsMap.has(key)) {\n throw new Error(\"Invalid predicate. Terminate your predicate with a valid condition (e.g., `p => p.field.eq('value')`) or pass `Predicates.ALL`.\");\n }\n return predicateInternalsMap.get(key);\n};\n/**\n * Maps operators to negated operators.\n * Used to facilitate propagation of negation down a tree of conditions.\n */\nvar negations = {\n and: 'or',\n or: 'and',\n not: 'and',\n eq: 'ne',\n ne: 'eq',\n gt: 'le',\n ge: 'lt',\n lt: 'ge',\n le: 'gt',\n contains: 'notContains',\n notContains: 'contains',\n};\n/**\n * A condition that can operate against a single \"primitive\" field of a model or item.\n * @member field The field of *some record* to test against.\n * @member operator The equality or comparison operator to use.\n * @member operands The operands for the equality/comparison check.\n */\nvar FieldCondition = /** @class */ (function () {\n function FieldCondition(field, operator, operands) {\n this.field = field;\n this.operator = operator;\n this.operands = operands;\n this.validate();\n }\n /**\n * Creates a copy of self.\n * @param extract Not used. Present only to fulfill the `UntypedCondition` interface.\n * @returns A new, identitical `FieldCondition`.\n */\n FieldCondition.prototype.copy = function (extract) {\n return [\n new FieldCondition(this.field, this.operator, __spread(this.operands)),\n undefined,\n ];\n };\n /**\n * Produces a tree structure similar to a graphql condition. The returned\n * structure is \"dumb\" and is intended for another query/condition\n * generation mechanism to interpret, such as the cloud or storage query\n * builders.\n *\n * E.g.,\n *\n * ```json\n * {\n * \t\"name\": {\n * \t\t\"eq\": \"robert\"\n * \t}\n * }\n * ```\n */\n FieldCondition.prototype.toAST = function () {\n var _a, _b;\n return _a = {},\n _a[this.field] = (_b = {},\n _b[this.operator] = this.operator === 'between'\n ? [this.operands[0], this.operands[1]]\n : this.operands[0],\n _b),\n _a;\n };\n /**\n * Produces a new condition (`FieldCondition` or `GroupCondition`) that\n * matches the opposite of this condition.\n *\n * Intended to be used when applying De Morgan's Law, which can be done to\n * produce more efficient queries against the storage layer if a negation\n * appears in the query tree.\n *\n * For example:\n *\n * 1. `name.eq('robert')` becomes `name.ne('robert')`\n * 2. `price.between(100, 200)` becomes `m => m.or(m => [m.price.lt(100), m.price.gt(200)])`\n *\n * @param model The model meta to use when construction a new `GroupCondition`\n * for cases where the negation requires multiple `FieldCondition`'s.\n */\n FieldCondition.prototype.negated = function (model) {\n if (this.operator === 'between') {\n return new GroupCondition(model, undefined, undefined, 'or', [\n new FieldCondition(this.field, 'lt', [this.operands[0]]),\n new FieldCondition(this.field, 'gt', [this.operands[1]]),\n ]);\n }\n else if (this.operator === 'beginsWith') {\n // beginsWith negation doesn't have a good, safe optimation right now.\n // just re-wrap it in negation. The adapter will have to scan-and-filter,\n // as is likely optimal for negated beginsWith conditions *anyway*.\n return new GroupCondition(model, undefined, undefined, 'not', [\n new FieldCondition(this.field, 'beginsWith', [this.operands[0]]),\n ]);\n }\n else {\n return new FieldCondition(this.field, negations[this.operator], this.operands);\n }\n };\n /**\n * Not implemented. Not needed. GroupCondition instead consumes FieldConditions and\n * transforms them into legacy predicates. (*For now.*)\n * @param storage N/A. If ever implemented, the storage adapter to query.\n * @returns N/A. If ever implemented, return items from `storage` that match.\n */\n FieldCondition.prototype.fetch = function (storage) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.reject('No implementation needed [yet].')];\n });\n });\n };\n /**\n * Determins whether a given item matches the expressed condition.\n * @param item The item to test.\n * @returns `Promise`, `true` if matches; `false` otherwise.\n */\n FieldCondition.prototype.matches = function (item) {\n return __awaiter(this, void 0, void 0, function () {\n var v, operations, operation, result;\n var _this = this;\n return __generator(this, function (_a) {\n v = item[this.field];\n operations = {\n eq: function () { return v === _this.operands[0]; },\n ne: function () { return v !== _this.operands[0]; },\n gt: function () { return v > _this.operands[0]; },\n ge: function () { return v >= _this.operands[0]; },\n lt: function () { return v < _this.operands[0]; },\n le: function () { return v <= _this.operands[0]; },\n contains: function () { return (v === null || v === void 0 ? void 0 : v.indexOf(_this.operands[0])) > -1; },\n notContains: function () { return (!v ? true : v.indexOf(_this.operands[0]) === -1); },\n beginsWith: function () { return v === null || v === void 0 ? void 0 : v.startsWith(_this.operands[0]); },\n between: function () { return v >= _this.operands[0] && v <= _this.operands[1]; },\n };\n operation = operations[this.operator];\n if (operation) {\n result = operation();\n return [2 /*return*/, result];\n }\n else {\n throw new Error(\"Invalid operator given: \" + this.operator);\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Checks `this.operands` for compatibility with `this.operator`.\n */\n FieldCondition.prototype.validate = function () {\n var _this = this;\n /**\n * Creates a validator that checks for a particular `operands` count.\n * Throws an exception if the `count` disagrees with `operands.length`.\n * @param count The number of `operands` expected.\n */\n var argumentCount = function (count) {\n var argsClause = count === 1 ? 'argument is' : 'arguments are';\n return function () {\n if (_this.operands.length !== count) {\n return \"Exactly \" + count + \" \" + argsClause + \" required.\";\n }\n };\n };\n // NOTE: validations should return a message on failure.\n // hence, they should be \"joined\" together with logical OR's\n // as seen in the `between:` entry.\n var validations = {\n eq: argumentCount(1),\n ne: argumentCount(1),\n gt: argumentCount(1),\n ge: argumentCount(1),\n lt: argumentCount(1),\n le: argumentCount(1),\n contains: argumentCount(1),\n notContains: argumentCount(1),\n beginsWith: argumentCount(1),\n between: function () {\n return argumentCount(2)() ||\n (_this.operands[0] > _this.operands[1]\n ? 'The first argument must be less than or equal to the second argument.'\n : null);\n },\n };\n var validate = validations[this.operator];\n if (validate) {\n var e = validate();\n if (typeof e === 'string')\n throw new Error(\"Incorrect usage of `\" + this.operator + \"()`: \" + e);\n }\n else {\n throw new Error(\"Non-existent operator: `\" + this.operator + \"()`\");\n }\n };\n return FieldCondition;\n}());\nexport { FieldCondition };\n/**\n * Small utility function to generate a monotonically increasing ID.\n * Used by GroupCondition to help keep track of which group is doing what,\n * when, and where during troubleshooting.\n */\nvar getGroupId = (function () {\n var seed = 1;\n return function () { return \"group_\" + seed++; };\n})();\n/**\n * A set of sub-conditions to operate against a model, optionally scoped to\n * a specific field, combined with the given operator (one of `and`, `or`, or `not`).\n * @member groupId Used to distinguish between GroupCondition instances for\n * debugging and troublehsooting.\n * @member model A metadata object that tells GroupCondition what to query and how.\n * @member field The field on the model that the sub-conditions apply to.\n * @member operator How to group child conditions together.\n * @member operands The child conditions.\n */\nvar GroupCondition = /** @class */ (function () {\n function GroupCondition(\n /**\n * The `ModelMeta` of the model to query and/or filter against.\n * Expected to contain:\n *\n * ```js\n * {\n * \tbuilder: ModelConstructor,\n * \tschema: SchemaModel,\n * \tpkField: string[]\n * }\n * ```\n */\n model, \n /**\n * If populated, this group specifices a condition on a relationship.\n *\n * If `field` does *not* point to a related model, that's an error. It\n * could indicate that the `GroupCondition` was instantiated with bad\n * data, or that the model metadata is incorrect.\n */\n field, \n /**\n * If a `field` is given, whether the relationship is a `HAS_ONE`,\n * 'HAS_MANY`, or `BELONGS_TO`.\n *\n * TODO: Remove this and replace with derivation using\n * `ModelRelationship.from(this.model, this.field).relationship`;\n */\n relationshipType, \n /**\n *\n */\n operator, \n /**\n *\n */\n operands, \n /**\n * Whether this GroupCondition is the result of an optimize call.\n *\n * This is used to guard against infinitely fetch -> optimize -> fetch\n * recursion.\n */\n isOptimized) {\n if (isOptimized === void 0) { isOptimized = false; }\n this.model = model;\n this.field = field;\n this.relationshipType = relationshipType;\n this.operator = operator;\n this.operands = operands;\n this.isOptimized = isOptimized;\n // `groupId` was used for development/debugging.\n // Should we leave this in for future troubleshooting?\n this.groupId = getGroupId();\n }\n /**\n * Returns a copy of a GroupCondition, which also returns the copy of a\n * given reference node to \"extract\".\n * @param extract A node of interest. Its copy will *also* be returned if the node exists.\n * @returns [The full copy, the copy of `extract` | undefined]\n */\n GroupCondition.prototype.copy = function (extract) {\n var copied = new GroupCondition(this.model, this.field, this.relationshipType, this.operator, []);\n var extractedCopy = extract === this ? copied : undefined;\n this.operands.forEach(function (o) {\n var _a = __read(o.copy(extract), 2), operandCopy = _a[0], extractedFromOperand = _a[1];\n copied.operands.push(operandCopy);\n extractedCopy = extractedCopy || extractedFromOperand;\n });\n return [copied, extractedCopy];\n };\n /**\n * Creates a new `GroupCondition` that contains only the local field conditions,\n * omitting related model conditions. That resulting `GroupCondition` can be\n * used to produce predicates that are compatible with the storage adapters and\n * Cloud storage.\n *\n * @param negate Whether the condition tree should be negated according\n * to De Morgan's law.\n */\n GroupCondition.prototype.withFieldConditionsOnly = function (negate) {\n var _this = this;\n var negateChildren = negate !== (this.operator === 'not');\n return new GroupCondition(this.model, undefined, undefined, (negate ? negations[this.operator] : this.operator), this.operands\n .filter(function (o) { return o instanceof FieldCondition; })\n .map(function (o) {\n return negateChildren ? o.negated(_this.model) : o;\n }));\n };\n /**\n * Returns a version of the predicate tree with unnecessary logical groups\n * condensed and merged together. This is intended to create a dense tree\n * with leaf nodes (`FieldCondition`'s) aggregated under as few group conditions\n * as possible for the most efficient fetching possible -- it allows `fetch()`.\n *\n * E.g. a grouping like this:\n *\n * ```yaml\n * and:\n * \tand:\n * \t\tid:\n * \t\t\teq: \"abc\"\n * \tand:\n * \t\tname:\n * \t\t\teq: \"xyz\"\n * ```\n *\n * Will become this:\n *\n * ```yaml\n * and:\n * \tid:\n * \t\teq: \"abc\"\n * \tname:\n * \t\teq: \"xyz\"\n * ```\n *\n * This allows `fetch()` to pass both the `id` and `name` conditions to the adapter\n * together, which can then decide what index to use based on both fields together.\n *\n * @param preserveNode Whether to preserve the current node and to explicitly not eliminate\n * it during optimization. Used internally to preserve the root node and children of\n * `not` groups. `not` groups will always have a single child, so there's nothing to\n * optimize below a `not` (for now), and it makes the query logic simpler later.\n */\n GroupCondition.prototype.optimized = function (preserveNode) {\n var _this = this;\n if (preserveNode === void 0) { preserveNode = true; }\n var operands = this.operands.map(function (o) {\n return o instanceof GroupCondition ? o.optimized(_this.operator === 'not') : o;\n });\n // we're only collapsing and/or groups that contains a single child for now,\n // because they're much more common and much more trivial to collapse. basically,\n // an `and`/`or` that contains a single child doesn't require the layer of\n // logical grouping.\n if (!preserveNode &&\n ['and', 'or'].includes(this.operator) &&\n !this.field &&\n operands.length === 1) {\n var operand = operands[0];\n if (operand instanceof FieldCondition) {\n // between conditions should NOT be passed up the chain. if they\n // need to be *negated* later, it is important that they be properly\n // contained in an AND group. when de morgan's law is applied, the\n // conditions are reversed and the AND group flips to an OR. this\n // doesn't work right if the a `between` doesn't live in an AND group.\n if (operand.operator !== 'between') {\n return operand;\n }\n }\n else {\n return operand;\n }\n }\n return new GroupCondition(this.model, this.field, this.relationshipType, this.operator, operands, true);\n };\n /**\n * Fetches matching records from a given storage adapter using legacy predicates (for now).\n * @param storage The storage adapter this predicate will query against.\n * @param breadcrumb For debugging/troubleshooting. A list of the `groupId`'s this\n * GroupdCondition.fetch is nested within.\n * @param negate Whether to match on the `NOT` of `this`.\n * @returns An `Promise` of `any[]` from `storage` matching the child conditions.\n */\n GroupCondition.prototype.fetch = function (storage, breadcrumb, negate) {\n if (breadcrumb === void 0) { breadcrumb = []; }\n if (negate === void 0) { negate = false; }\n return __awaiter(this, void 0, void 0, function () {\n var resultGroups, operator, negateChildren, groups, conditions, groups_1, groups_1_1, g, relatives, relationship, allJoinConditions, relatives_1, relatives_1_1, relative, relativeConditions, i, predicate, _a, _b, e_1_1, predicate, _c, _d, _e, _f, getPKValue, resultIndex, resultGroups_1, resultGroups_1_1, group, intersectWith, _g, _h, k, resultGroups_2, resultGroups_2_1, group, group_1, group_1_1, item;\n var e_1, _j, e_2, _k, _l, e_3, _m, e_4, _o, e_5, _p, e_6, _q;\n var _this = this;\n return __generator(this, function (_r) {\n switch (_r.label) {\n case 0:\n if (!this.isOptimized) {\n return [2 /*return*/, this.optimized().fetch(storage)];\n }\n resultGroups = [];\n operator = (negate ? negations[this.operator] : this.operator);\n negateChildren = negate !== (this.operator === 'not');\n groups = this.operands.filter(function (op) { return op instanceof GroupCondition; });\n conditions = this.operands.filter(function (op) { return op instanceof FieldCondition; });\n _r.label = 1;\n case 1:\n _r.trys.push([1, 10, 11, 12]);\n groups_1 = __values(groups), groups_1_1 = groups_1.next();\n _r.label = 2;\n case 2:\n if (!!groups_1_1.done) return [3 /*break*/, 9];\n g = groups_1_1.value;\n return [4 /*yield*/, g.fetch(storage, __spread(breadcrumb, [this.groupId]), negateChildren)];\n case 3:\n relatives = _r.sent();\n // no relatives -> no need to attempt to perform a \"join\" query for\n // candidate results:\n //\n // select a.* from a,b where b.id in EMPTY_SET ==> EMPTY_SET\n //\n // Additionally, the entire (sub)-query can be short-circuited if\n // the operator is `AND`. Illustrated in SQL:\n //\n // select a.* from a where\n // id in [a,b,c]\n // AND <\n // id in EMTPY_SET <<< Look!\n // AND <\n // id in [x,y,z]\n //\n // YIELDS: EMPTY_SET // <-- Easy peasy. Lemon squeezy.\n //\n if (relatives.length === 0) {\n // aggressively short-circuit as soon as we know the group condition will fail\n if (operator === 'and') {\n return [2 /*return*/, []];\n }\n // less aggressive short-circuit if we know the relatives will produce no\n // candidate results; but aren't sure yet how this affects the group condition.\n resultGroups.push([]);\n return [3 /*break*/, 8];\n }\n if (!g.field) return [3 /*break*/, 7];\n relationship = ModelRelationship.from(this.model, g.field);\n if (!relationship) return [3 /*break*/, 5];\n allJoinConditions = [];\n try {\n for (relatives_1 = (e_2 = void 0, __values(relatives)), relatives_1_1 = relatives_1.next(); !relatives_1_1.done; relatives_1_1 = relatives_1.next()) {\n relative = relatives_1_1.value;\n relativeConditions = [];\n for (i = 0; i < relationship.localJoinFields.length; i++) {\n relativeConditions.push((_l = {},\n _l[relationship.localJoinFields[i]] = {\n eq: relative[relationship.remoteJoinFields[i]],\n },\n _l));\n }\n allJoinConditions.push({ and: relativeConditions });\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (relatives_1_1 && !relatives_1_1.done && (_k = relatives_1.return)) _k.call(relatives_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n predicate = FlatModelPredicateCreator.createFromAST(this.model.schema, {\n or: allJoinConditions,\n });\n _b = (_a = resultGroups).push;\n return [4 /*yield*/, storage.query(this.model.builder, predicate)];\n case 4:\n _b.apply(_a, [_r.sent()]);\n return [3 /*break*/, 6];\n case 5: throw new Error('Missing field metadata.');\n case 6: return [3 /*break*/, 8];\n case 7:\n // relatives are not actually relatives. they're candidate results.\n resultGroups.push(relatives);\n _r.label = 8;\n case 8:\n groups_1_1 = groups_1.next();\n return [3 /*break*/, 2];\n case 9: return [3 /*break*/, 12];\n case 10:\n e_1_1 = _r.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 11:\n try {\n if (groups_1_1 && !groups_1_1.done && (_j = groups_1.return)) _j.call(groups_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 12:\n if (!(conditions.length > 0)) return [3 /*break*/, 14];\n predicate = this.withFieldConditionsOnly(negateChildren).toStoragePredicate();\n _d = (_c = resultGroups).push;\n return [4 /*yield*/, storage.query(this.model.builder, predicate)];\n case 13:\n _d.apply(_c, [_r.sent()]);\n return [3 /*break*/, 16];\n case 14:\n if (!(conditions.length === 0 && resultGroups.length === 0)) return [3 /*break*/, 16];\n _f = (_e = resultGroups).push;\n return [4 /*yield*/, storage.query(this.model.builder)];\n case 15:\n _f.apply(_e, [_r.sent()]);\n _r.label = 16;\n case 16:\n getPKValue = function (item) {\n return JSON.stringify(_this.model.pkField.map(function (name) { return item[name]; }));\n };\n if (operator === 'and') {\n if (resultGroups.length === 0) {\n return [2 /*return*/, []];\n }\n try {\n // for each group, we intersect, removing items from the result index\n // that aren't present in each subsequent group.\n for (resultGroups_1 = __values(resultGroups), resultGroups_1_1 = resultGroups_1.next(); !resultGroups_1_1.done; resultGroups_1_1 = resultGroups_1.next()) {\n group = resultGroups_1_1.value;\n if (resultIndex === undefined) {\n resultIndex = new Map(group.map(function (item) { return [getPKValue(item), item]; }));\n }\n else {\n intersectWith = new Map(group.map(function (item) { return [getPKValue(item), item]; }));\n try {\n for (_g = (e_4 = void 0, __values(resultIndex.keys())), _h = _g.next(); !_h.done; _h = _g.next()) {\n k = _h.value;\n if (!intersectWith.has(k)) {\n resultIndex.delete(k);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_h && !_h.done && (_o = _g.return)) _o.call(_g);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (resultGroups_1_1 && !resultGroups_1_1.done && (_m = resultGroups_1.return)) _m.call(resultGroups_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n else if (operator === 'or' || operator === 'not') {\n // it's OK to handle NOT here, because NOT must always only negate\n // a single child predicate. NOT logic will have been distributed down\n // to the leaf conditions already.\n resultIndex = new Map();\n try {\n // just merge the groups, performing DISTINCT-ification by ID.\n for (resultGroups_2 = __values(resultGroups), resultGroups_2_1 = resultGroups_2.next(); !resultGroups_2_1.done; resultGroups_2_1 = resultGroups_2.next()) {\n group = resultGroups_2_1.value;\n try {\n for (group_1 = (e_6 = void 0, __values(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {\n item = group_1_1.value;\n resultIndex.set(getPKValue(item), item);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (group_1_1 && !group_1_1.done && (_q = group_1.return)) _q.call(group_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (resultGroups_2_1 && !resultGroups_2_1.done && (_p = resultGroups_2.return)) _p.call(resultGroups_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n return [2 /*return*/, Array.from((resultIndex === null || resultIndex === void 0 ? void 0 : resultIndex.values()) || [])];\n }\n });\n });\n };\n /**\n * Determines whether a single item matches the conditions of `this`.\n * When checking the target `item`'s properties, each property will be `await`'d\n * to ensure lazy-loading is respected where applicable.\n * @param item The item to match against.\n * @param ignoreFieldName Tells `match()` that the field name has already been dereferenced.\n * (Used for iterating over children on HAS_MANY checks.)\n * @returns A boolean (promise): `true` if matched, `false` otherwise.\n */\n GroupCondition.prototype.matches = function (item, ignoreFieldName) {\n if (ignoreFieldName === void 0) { ignoreFieldName = false; }\n var e_7, _a;\n return __awaiter(this, void 0, void 0, function () {\n var itemToCheck, _b, itemToCheck_1, itemToCheck_1_1, singleItem, e_7_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(this.field && !ignoreFieldName)) return [3 /*break*/, 2];\n return [4 /*yield*/, item[this.field]];\n case 1:\n _b = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _b = item;\n _c.label = 3;\n case 3:\n itemToCheck = _b;\n // if there is no item to check, we can stop recursing immediately.\n // a condition cannot match against an item that does not exist. this\n // can occur when `item.field` is optional in the schema.\n if (!itemToCheck) {\n return [2 /*return*/, false];\n }\n if (!(this.relationshipType === 'HAS_MANY' &&\n typeof itemToCheck[Symbol.asyncIterator] === 'function')) return [3 /*break*/, 17];\n _c.label = 4;\n case 4:\n _c.trys.push([4, 10, 11, 16]);\n itemToCheck_1 = __asyncValues(itemToCheck);\n _c.label = 5;\n case 5: return [4 /*yield*/, itemToCheck_1.next()];\n case 6:\n if (!(itemToCheck_1_1 = _c.sent(), !itemToCheck_1_1.done)) return [3 /*break*/, 9];\n singleItem = itemToCheck_1_1.value;\n return [4 /*yield*/, this.matches(singleItem, true)];\n case 7:\n if (_c.sent()) {\n return [2 /*return*/, true];\n }\n _c.label = 8;\n case 8: return [3 /*break*/, 5];\n case 9: return [3 /*break*/, 16];\n case 10:\n e_7_1 = _c.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 16];\n case 11:\n _c.trys.push([11, , 14, 15]);\n if (!(itemToCheck_1_1 && !itemToCheck_1_1.done && (_a = itemToCheck_1.return))) return [3 /*break*/, 13];\n return [4 /*yield*/, _a.call(itemToCheck_1)];\n case 12:\n _c.sent();\n _c.label = 13;\n case 13: return [3 /*break*/, 15];\n case 14:\n if (e_7) throw e_7.error;\n return [7 /*endfinally*/];\n case 15: return [7 /*endfinally*/];\n case 16: return [2 /*return*/, false];\n case 17:\n if (!(this.operator === 'or')) return [3 /*break*/, 18];\n return [2 /*return*/, asyncSome(this.operands, function (c) { return c.matches(itemToCheck); })];\n case 18:\n if (!(this.operator === 'and')) return [3 /*break*/, 19];\n return [2 /*return*/, asyncEvery(this.operands, function (c) { return c.matches(itemToCheck); })];\n case 19:\n if (!(this.operator === 'not')) return [3 /*break*/, 21];\n if (this.operands.length !== 1) {\n throw new Error('Invalid arguments! `not()` accepts exactly one predicate expression.');\n }\n return [4 /*yield*/, this.operands[0].matches(itemToCheck)];\n case 20: return [2 /*return*/, !(_c.sent())];\n case 21: throw new Error('Invalid group operator!');\n }\n });\n });\n };\n /**\n * Tranfsorm to a AppSync GraphQL compatible AST.\n * (Does not support filtering in nested types.)\n */\n GroupCondition.prototype.toAST = function () {\n var _a;\n if (this.field)\n throw new Error('Nested type conditions are not supported!');\n return _a = {},\n _a[this.operator] = this.operands.map(function (operand) { return operand.toAST(); }),\n _a;\n };\n /**\n * Turn this predicate group into something a storage adapter\n * understands how to use.\n */\n GroupCondition.prototype.toStoragePredicate = function () {\n return FlatModelPredicateCreator.createFromAST(this.model.schema, this.toAST());\n };\n /**\n * A JSON representation that's good for debugging.\n */\n GroupCondition.prototype.toJSON = function () {\n return __assign(__assign({}, this), { model: this.model.schema.name });\n };\n return GroupCondition;\n}());\nexport { GroupCondition };\n/**\n * Creates a \"seed\" predicate that can be used to build an executable condition.\n * This is used in `query()`, for example, to seed customer- E.g.,\n *\n * ```\n * const p = predicateFor({builder: modelConstructor, schema: modelSchema, pkField: string[]});\n * p.and(child => [\n * child.field.eq('whatever'),\n * child.childModel.childField.eq('whatever else'),\n * child.childModel.or(child => [\n * child.otherField.contains('x'),\n * child.otherField.contains('y'),\n * child.otherField.contains('z'),\n * ])\n * ])\n * ```\n *\n * `predicateFor()` returns objecst with recursive getters. To facilitate this,\n * a `query` and `tail` can be provided to \"accumulate\" nested conditions.\n *\n * @param ModelType The ModelMeta used to build child properties.\n * @param field Scopes the query branch to a field.\n * @param query A base query to build on. Omit to start a new query.\n * @param tail The point in an existing `query` to attach new conditions to.\n * @returns A ModelPredicate (builder) that customers can create queries with.\n * (As shown in function description.)\n */\nexport function recursivePredicateFor(ModelType, allowRecursion, field, query, tail) {\n if (allowRecursion === void 0) { allowRecursion = true; }\n // to be used if we don't have a base query or tail to build onto\n var starter = new GroupCondition(ModelType, field, undefined, 'and', []);\n var baseCondition = query && tail ? query : starter;\n var tailCondition = query && tail ? tail : starter;\n // our eventual return object, which can be built upon.\n // next steps will be to add or(), and(), not(), and field.op() methods.\n var link = {};\n // so it can be looked up later with in the internals when processing conditions.\n registerPredicateInternals(baseCondition, link);\n var copyLink = function () {\n var _a = __read(baseCondition.copy(tailCondition), 2), query = _a[0], newTail = _a[1];\n var newLink = recursivePredicateFor(ModelType, allowRecursion, undefined, query, newTail);\n return { query: query, newTail: newTail, newLink: newLink };\n };\n // Adds .or() and .and() methods to the link.\n // TODO: If revisiting this code, consider writing a Proxy instead.\n ['and', 'or'].forEach(function (op) {\n link[op] = function (builder) {\n // or() and and() will return a copy of the original link\n // to head off mutability concerns.\n var _a = copyLink(), query = _a.query, newTail = _a.newTail;\n var childConditions = builder(recursivePredicateFor(ModelType, allowRecursion));\n if (!Array.isArray(childConditions)) {\n throw new Error(\"Invalid predicate. `\" + op + \"` groups must return an array of child conditions.\");\n }\n // the customer will supply a child predicate, which apply to the `model.field`\n // of the tail GroupCondition.\n newTail === null || newTail === void 0 ? void 0 : newTail.operands.push(new GroupCondition(ModelType, field, undefined, op, childConditions.map(function (c) { return internals(c); })));\n // FinalPredicate\n return registerPredicateInternals(query);\n };\n });\n // TODO: If revisiting this code, consider proxy.\n link.not = function (builder) {\n // not() will return a copy of the original link\n // to head off mutability concerns.\n var _a = copyLink(), query = _a.query, newTail = _a.newTail;\n // unlike and() and or(), the customer will supply a \"singular\" child predicate.\n // the difference being: not() does not accept an array of predicate-like objects.\n // it negates only a *single* predicate subtree.\n newTail === null || newTail === void 0 ? void 0 : newTail.operands.push(new GroupCondition(ModelType, field, undefined, 'not', [\n internals(builder(recursivePredicateFor(ModelType, allowRecursion))),\n ]));\n // A `FinalModelPredicate`.\n // Return a thing that can no longer be extended, but instead used to `async filter(items)`\n // or query storage: `.__query.fetch(storage)`.\n return registerPredicateInternals(query);\n };\n var _loop_1 = function (fieldName) {\n Object.defineProperty(link, fieldName, {\n enumerable: true,\n get: function () {\n var def = ModelType.schema.allFields[fieldName];\n if (!def.association) {\n // we're looking at a value field. we need to return a\n // \"field matcher object\", which contains all of the comparison\n // functions ('eq', 'ne', 'gt', etc.), scoped to operate\n // against the target field (fieldName).\n return ops.reduce(function (fieldMatcher, operator) {\n var _a;\n return __assign(__assign({}, fieldMatcher), (_a = {}, _a[operator] = function () {\n var operands = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operands[_i] = arguments[_i];\n }\n // build off a fresh copy of the existing `link`, just in case\n // the same link is being used elsewhere by the customer.\n var _a = copyLink(), query = _a.query, newTail = _a.newTail;\n // normalize operands. if any of the values are `undefiend`, use\n // `null` instead, because that's what will be stored cross-platform.\n var normalizedOperands = operands.map(function (o) {\n return o === undefined ? null : o;\n });\n // add the given condition to the link's TAIL node.\n // remember: the base link might go N nodes deep! e.g.,\n newTail === null || newTail === void 0 ? void 0 : newTail.operands.push(new FieldCondition(fieldName, operator, normalizedOperands));\n // A `FinalModelPredicate`.\n // Return a thing that can no longer be extended, but instead used to `async filter(items)`\n // or query storage: `.__query.fetch(storage)`.\n return registerPredicateInternals(query);\n }, _a));\n }, {});\n }\n else {\n if (!allowRecursion) {\n throw new Error('Predication on releated models is not supported in this context.');\n }\n else if (def.association.connectionType === 'BELONGS_TO' ||\n def.association.connectionType === 'HAS_ONE' ||\n def.association.connectionType === 'HAS_MANY') {\n // the use has just typed '.someRelatedModel'. we need to given them\n // back a predicate chain.\n var relatedMeta = def.type.modelConstructor;\n if (!relatedMeta) {\n throw new Error('Related model metadata is missing. This is a bug! Please report it.');\n }\n // `Model.reletedModelField` returns a copy of the original link,\n // and will contains copies of internal GroupConditions\n // to head off mutability concerns.\n var _a = __read(baseCondition.copy(tailCondition), 2), newquery = _a[0], oldtail = _a[1];\n var newtail = new GroupCondition(relatedMeta, fieldName, def.association.connectionType, 'and', []);\n // `oldtail` here refers to the *copy* of the old tail.\n // so, it's safe to modify at this point. and we need to modify\n // it to push the *new* tail onto the end of it.\n oldtail.operands.push(newtail);\n var newlink = recursivePredicateFor(relatedMeta, allowRecursion, undefined, newquery, newtail);\n return newlink;\n }\n else {\n throw new Error(\"Related model definition doesn't have a typedef. This is a bug! Please report it.\");\n }\n }\n },\n });\n };\n // For each field on the model schema, we want to add a getter\n // that creates the appropriate new `link` in the query chain.\n // TODO: If revisiting, consider a proxy.\n for (var fieldName in ModelType.schema.allFields) {\n _loop_1(fieldName);\n }\n return link;\n}\nexport function predicateFor(ModelType) {\n // the cast here is just a cheap way to reduce the surface area from\n // the recursive type.\n return recursivePredicateFor(ModelType, false);\n}\n//# sourceMappingURL=next.js.map","import { __assign, __asyncValues, __awaiter, __extends, __generator, __read, __rest, __spread, __values } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InternalAPI } from '@aws-amplify/api/internals';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\nimport { Amplify, ConsoleLogger as Logger, Hub, browserOrNode, BackgroundProcessManager, } from '@aws-amplify/core';\nimport { immerable, produce, setAutoFreeze, enablePatches, } from 'immer';\nimport { v4 as uuid4 } from 'uuid';\nimport Observable from 'zen-observable-ts';\nimport { defaultAuthStrategy, multiAuthStrategy } from '../authModeStrategies';\nimport { isPredicatesAll, ModelPredicateCreator, ModelSortPredicateCreator, } from '../predicates';\nimport { ExclusiveStorage as Storage } from '../storage/storage';\nimport { ModelRelationship } from '../storage/relationship';\nimport { ControlMessage, SyncEngine } from '../sync';\nimport { GraphQLScalarType, isGraphQLScalarType, isSchemaModelWithAttributes, AuthModeStrategyType, isNonModelFieldType, isModelFieldType, isIdentifierObject, } from '../types';\nimport { DATASTORE, errorMessages, establishRelationAndKeys, isModelConstructor, monotonicUlidFactory, STORAGE, SYNC, USER, isNullOrUndefined, registerNonModelClass, sortCompareFunction, DeferredCallbackResolver, inMemoryPagination, extractPrimaryKeyFieldNames, extractPrimaryKeysAndValues, isIdManaged, isIdOptionallyManaged, mergePatches, getTimestampFields, } from '../util';\nimport { recursivePredicateFor, predicateFor, internals, } from '../predicates/next';\nimport { getIdentifierValue } from '../sync/utils';\nsetAutoFreeze(true);\nenablePatches();\nvar logger = new Logger('DataStore');\nvar ulid = monotonicUlidFactory(Date.now());\nvar isNode = browserOrNode().isNode;\nvar SETTING_SCHEMA_VERSION = 'schemaVersion';\nvar schema;\nvar modelNamespaceMap = new WeakMap();\n/**\n * Stores data for crafting the correct update mutation input for a model.\n *\n * - `Patch[]` - array of changed fields and metadata.\n * - `PersistentModel` - the source model, used for diffing object-type fields.\n */\nvar modelPatchesMap = new WeakMap();\nvar getModelDefinition = function (modelConstructor) {\n var namespace = modelNamespaceMap.get(modelConstructor);\n var definition = namespace\n ? schema.namespaces[namespace].models[modelConstructor.name]\n : undefined;\n return definition;\n};\n/**\n * Determines whether the given object is a Model Constructor that DataStore can\n * safely use to construct objects and discover related metadata.\n *\n * @param obj The object to test.\n */\nvar isValidModelConstructor = function (obj) {\n return isModelConstructor(obj) && modelNamespaceMap.has(obj);\n};\nvar namespaceResolver = function (modelConstructor) {\n var resolver = modelNamespaceMap.get(modelConstructor);\n if (!resolver) {\n throw new Error(\"Namespace Resolver for '\" + modelConstructor.name + \"' not found! This is probably a bug in '@amplify-js/datastore'.\");\n }\n return resolver;\n};\n/**\n * Creates a predicate without any conditions that can be passed to customer\n * code to have conditions added to it.\n *\n * For example, in this query:\n *\n * ```ts\n * await DataStore.query(\n * \tModel,\n * \titem => item.field.eq('value')\n * );\n * ```\n *\n * `buildSeedPredicate(Model)` is used to create `item`, which is passed to the\n * predicate function, which in turn uses that \"seed\" predicate (`item`) to build\n * a predicate tree.\n *\n * @param modelConstructor The model the predicate will query.\n */\nvar buildSeedPredicate = function (modelConstructor) {\n if (!modelConstructor)\n throw new Error('Missing modelConstructor');\n var modelSchema = getModelDefinition(modelConstructor);\n if (!modelSchema)\n throw new Error('Missing modelSchema');\n var pks = extractPrimaryKeyFieldNames(modelSchema);\n if (!pks)\n throw new Error('Could not determine PK');\n return recursivePredicateFor({\n builder: modelConstructor,\n schema: modelSchema,\n pkField: pks,\n });\n};\n// exporting syncClasses for testing outbox.test.ts\nexport var syncClasses;\nvar userClasses;\nvar dataStoreClasses;\nvar storageClasses;\n/**\n * Maps a model to its related models for memoization/immutability.\n */\nvar modelInstanceAssociationsMap = new WeakMap();\n/**\n * Describes whether and to what a model is attached for lazy loading purposes.\n */\nvar ModelAttachment;\n(function (ModelAttachment) {\n /**\n * Model doesn't lazy load from any data source.\n *\n * Related entity properties provided at instantiation are returned\n * via the respective lazy interfaces when their properties are invoked.\n */\n ModelAttachment[\"Detached\"] = \"Detached\";\n /**\n * Model lazy loads from the global DataStore.\n */\n ModelAttachment[\"DataStore\"] = \"DataStore\";\n /**\n * Demonstrative. Not yet implemented.\n */\n ModelAttachment[\"API\"] = \"API\";\n})(ModelAttachment || (ModelAttachment = {}));\n/**\n * Tells us which data source a model is attached to (lazy loads from).\n *\n * If `Deatched`, the model's lazy properties will only ever return properties\n * from memory provided at construction time.\n */\nvar attachedModelInstances = new WeakMap();\n/**\n * Registers a model instance against a data source (DataStore, API, or\n * Detached/None).\n *\n * The API option is demonstrative. Lazy loading against API is not yet\n * implemented.\n *\n * @param result A model instance or array of instances\n * @param attachment A ModelAttachment data source\n * @returns passes the `result` back through after attachment\n */\nexport function attached(result, attachment) {\n if (Array.isArray(result)) {\n result.map(function (record) { return attached(record, attachment); });\n }\n else {\n result && attachedModelInstances.set(result, attachment);\n }\n return result;\n}\n/**\n * Determines what source a model instance should lazy load from.\n *\n * If the instace was never explicitly registered, it is detached by default.\n *\n * @param instance A model instance\n */\nexport var getAttachment = function (instance) {\n return attachedModelInstances.has(instance)\n ? attachedModelInstances.get(instance)\n : ModelAttachment.Detached;\n};\nvar initSchema = function (userSchema) {\n var _a;\n if (schema !== undefined) {\n console.warn('The schema has already been initialized');\n return userClasses;\n }\n logger.log('validating schema', { schema: userSchema });\n checkSchemaCodegenVersion(userSchema.codegenVersion);\n var internalUserNamespace = __assign({ name: USER }, userSchema);\n logger.log('DataStore', 'Init models');\n userClasses = createTypeClasses(internalUserNamespace);\n logger.log('DataStore', 'Models initialized');\n var dataStoreNamespace = getNamespace();\n var storageNamespace = Storage.getNamespace();\n var syncNamespace = SyncEngine.getNamespace();\n dataStoreClasses = createTypeClasses(dataStoreNamespace);\n storageClasses = createTypeClasses(storageNamespace);\n syncClasses = createTypeClasses(syncNamespace);\n schema = {\n namespaces: (_a = {},\n _a[dataStoreNamespace.name] = dataStoreNamespace,\n _a[internalUserNamespace.name] = internalUserNamespace,\n _a[storageNamespace.name] = storageNamespace,\n _a[syncNamespace.name] = syncNamespace,\n _a),\n version: userSchema.version,\n codegenVersion: userSchema.codegenVersion,\n };\n Object.keys(schema.namespaces).forEach(function (namespace) {\n var e_1, _a;\n var _b = __read(establishRelationAndKeys(schema.namespaces[namespace]), 2), relations = _b[0], keys = _b[1];\n schema.namespaces[namespace].relationships = relations;\n schema.namespaces[namespace].keys = keys;\n var modelAssociations = new Map();\n Object.values(schema.namespaces[namespace].models).forEach(function (model) {\n var e_2, _a, e_3, _b;\n var connectedModels = [];\n Object.values(model.fields)\n .filter(function (field) {\n return field.association &&\n field.association.connectionType === 'BELONGS_TO' &&\n field.type.model !== model.name;\n })\n .forEach(function (field) {\n return connectedModels.push(field.type.model);\n });\n modelAssociations.set(model.name, connectedModels);\n // Precompute model info (such as pk fields) so that downstream schema consumers\n // (such as predicate builders) don't have to reach back into \"DataStore\" space\n // to go looking for it.\n Object.values(model.fields).forEach(function (field) {\n var relatedModel = userClasses[field.type.model];\n if (isModelConstructor(relatedModel)) {\n Object.defineProperty(field.type, 'modelConstructor', {\n get: function () {\n var relatedModelDefinition = getModelDefinition(relatedModel);\n if (!relatedModelDefinition)\n throw new Error(\"Could not find model definition for \" + relatedModel.name);\n return {\n builder: relatedModel,\n schema: relatedModelDefinition,\n pkField: extractPrimaryKeyFieldNames(relatedModelDefinition),\n };\n },\n });\n }\n });\n // compatibility with legacy/pre-PK codegen for lazy loading to inject\n // index fields into the model definition.\n // definition.cloudFields = { ...definition.fields };\n var indexes = schema.namespaces[namespace].relationships[model.name].indexes;\n var indexFields = new Set();\n try {\n for (var indexes_1 = __values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {\n var index = indexes_1_1.value;\n try {\n for (var _c = (e_3 = void 0, __values(index[1])), _d = _c.next(); !_d.done; _d = _c.next()) {\n var indexField = _d.value;\n indexFields.add(indexField);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n model.allFields = __assign(__assign({}, Object.fromEntries(__spread(indexFields.values()).map(function (name) { return [\n name,\n {\n name: name,\n type: 'ID',\n isArray: false,\n },\n ]; }))), model.fields);\n });\n var result = new Map();\n var count = 1000;\n while (true && count > 0) {\n if (modelAssociations.size === 0) {\n break;\n }\n count--;\n if (count === 0) {\n throw new Error('Models are not topologically sortable. Please verify your schema.');\n }\n try {\n for (var _c = (e_1 = void 0, __values(Array.from(modelAssociations.keys()))), _d = _c.next(); !_d.done; _d = _c.next()) {\n var modelName = _d.value;\n var parents = modelAssociations.get(modelName);\n if (parents === null || parents === void 0 ? void 0 : parents.every(function (x) { return result.has(x); })) {\n result.set(modelName, parents);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n Array.from(result.keys()).forEach(function (x) { return modelAssociations.delete(x); });\n }\n schema.namespaces[namespace].modelTopologicalOrdering = result;\n });\n return userClasses;\n};\n/**\n * Throws an exception if the schema has *not* been initialized\n * by `initSchema()`.\n *\n * **To be called before trying to access schema.**\n *\n * Currently this only needs to be called in `start()` and `clear()` because\n * all other functions will call start first.\n */\nvar checkSchemaInitialized = function () {\n if (schema === undefined) {\n var message = 'Schema is not initialized. DataStore will not function as expected. This could happen if you have multiple versions of DataStore installed. Please see https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js/#check-for-duplicate-versions';\n logger.error(message);\n throw new Error(message);\n }\n};\n/**\n * Throws an exception if the schema is using a codegen version that is not supported.\n *\n * Set the supported version by setting majorVersion and minorVersion\n * This functions similar to ^ version range.\n * The tested codegenVersion major version must exactly match the set majorVersion\n * The tested codegenVersion minor version must be gt or equal to the set minorVersion\n * Example: For a min supported version of 5.4.0 set majorVersion = 5 and minorVersion = 4\n *\n * This regex will not work when setting a supported range with minor version\n * of 2 or more digits.\n * i.e. minorVersion = 10 will not work\n * The regex will work for testing a codegenVersion with multi digit minor\n * versions as long as the minimum minorVersion is single digit.\n * i.e. codegenVersion = 5.30.1, majorVersion = 5, minorVersion = 4 PASSES\n *\n * @param codegenVersion schema codegenVersion\n */\nvar checkSchemaCodegenVersion = function (codegenVersion) {\n var majorVersion = 3;\n var minorVersion = 2;\n var isValid = false;\n try {\n var versionParts = codegenVersion.split('.');\n var _a = __read(versionParts, 4), major = _a[0], minor = _a[1], patch = _a[2], patchrevision = _a[3];\n isValid = Number(major) === majorVersion && Number(minor) >= minorVersion;\n }\n catch (err) {\n console.log(\"Error parsing codegen version: \" + codegenVersion + \"\\n\" + err);\n }\n if (!isValid) {\n var message = \"Models were generated with an unsupported version of codegen. Codegen artifacts are from \" + (codegenVersion || 'an unknown version') + \", whereas ^\" + majorVersion + \".\" + minorVersion + \".0 is required. \" +\n \"Update to the latest CLI and run 'amplify codegen models'.\";\n logger.error(message);\n throw new Error(message);\n }\n};\nvar createTypeClasses = function (namespace) {\n var classes = {};\n Object.entries(namespace.models).forEach(function (_a) {\n var _b = __read(_a, 2), modelName = _b[0], modelDefinition = _b[1];\n var clazz = createModelClass(modelDefinition);\n classes[modelName] = clazz;\n modelNamespaceMap.set(clazz, namespace.name);\n });\n Object.entries(namespace.nonModels || {}).forEach(function (_a) {\n var _b = __read(_a, 2), typeName = _b[0], typeDefinition = _b[1];\n var clazz = createNonModelClass(typeDefinition);\n classes[typeName] = clazz;\n });\n return classes;\n};\n/**\n * Collection of instantiated models to allow storage of metadata apart from\n * the model visible to the consuming app -- in case the app doesn't have\n * metadata fields (_version, _deleted, etc.) exposed on the model itself.\n */\nvar instancesMetadata = new WeakSet();\nfunction modelInstanceCreator(modelConstructor, init) {\n instancesMetadata.add(init);\n return new modelConstructor(init);\n}\nvar validateModelFields = function (modelDefinition) { return function (k, v) {\n var fieldDefinition = modelDefinition.fields[k];\n if (fieldDefinition !== undefined) {\n var type_1 = fieldDefinition.type, isRequired_1 = fieldDefinition.isRequired, isArrayNullable = fieldDefinition.isArrayNullable, name_1 = fieldDefinition.name, isArray = fieldDefinition.isArray;\n var timestamps = isSchemaModelWithAttributes(modelDefinition)\n ? getTimestampFields(modelDefinition)\n : {};\n var isTimestampField = !!timestamps[name_1];\n if (((!isArray && isRequired_1) || (isArray && !isArrayNullable)) &&\n !isTimestampField &&\n (v === null || v === undefined)) {\n throw new Error(\"Field \" + name_1 + \" is required\");\n }\n if (isSchemaModelWithAttributes(modelDefinition) &&\n !isIdManaged(modelDefinition)) {\n var keys = extractPrimaryKeyFieldNames(modelDefinition);\n if (keys.includes(k) && v === '') {\n logger.error(errorMessages.idEmptyString, { k: k, value: v });\n throw new Error(errorMessages.idEmptyString);\n }\n }\n if (isGraphQLScalarType(type_1)) {\n var jsType_1 = GraphQLScalarType.getJSType(type_1);\n var validateScalar_1 = GraphQLScalarType.getValidationFunction(type_1);\n if (type_1 === 'AWSJSON') {\n if (typeof v === jsType_1) {\n return;\n }\n if (typeof v === 'string') {\n try {\n JSON.parse(v);\n return;\n }\n catch (error) {\n throw new Error(\"Field \" + name_1 + \" is an invalid JSON object. \" + v);\n }\n }\n }\n if (isArray) {\n var errorTypeText = jsType_1;\n if (!isRequired_1) {\n errorTypeText = jsType_1 + \" | null | undefined\";\n }\n if (!Array.isArray(v) && !isArrayNullable) {\n throw new Error(\"Field \" + name_1 + \" should be of type [\" + errorTypeText + \"], \" + typeof v + \" received. \" + v);\n }\n if (!isNullOrUndefined(v) &&\n v.some(function (e) {\n return isNullOrUndefined(e) ? isRequired_1 : typeof e !== jsType_1;\n })) {\n var elemTypes = v\n .map(function (e) { return (e === null ? 'null' : typeof e); })\n .join(',');\n throw new Error(\"All elements in the \" + name_1 + \" array should be of type \" + errorTypeText + \", [\" + elemTypes + \"] received. \" + v);\n }\n if (validateScalar_1 && !isNullOrUndefined(v)) {\n var validationStatus = v.map(function (e) {\n if (!isNullOrUndefined(e)) {\n return validateScalar_1(e);\n }\n else if (isNullOrUndefined(e) && !isRequired_1) {\n return true;\n }\n else {\n return false;\n }\n });\n if (!validationStatus.every(function (s) { return s; })) {\n throw new Error(\"All elements in the \" + name_1 + \" array should be of type \" + type_1 + \", validation failed for one or more elements. \" + v);\n }\n }\n }\n else if (!isRequired_1 && v === undefined) {\n return;\n }\n else if (typeof v !== jsType_1 && v !== null) {\n throw new Error(\"Field \" + name_1 + \" should be of type \" + jsType_1 + \", \" + typeof v + \" received. \" + v);\n }\n else if (!isNullOrUndefined(v) &&\n validateScalar_1 &&\n !validateScalar_1(v) // TODO: why never, TS ... why ...\n ) {\n throw new Error(\"Field \" + name_1 + \" should be of type \" + type_1 + \", validation failed. \" + v);\n }\n }\n else if (isNonModelFieldType(type_1)) {\n // do not check non model fields if undefined or null\n if (!isNullOrUndefined(v)) {\n var subNonModelDefinition_1 = schema.namespaces.user.nonModels[type_1.nonModel];\n var modelValidator_1 = validateModelFields(subNonModelDefinition_1);\n if (isArray) {\n var errorTypeText = type_1.nonModel;\n if (!isRequired_1) {\n errorTypeText = type_1.nonModel + \" | null | undefined\";\n }\n if (!Array.isArray(v)) {\n throw new Error(\"Field \" + name_1 + \" should be of type [\" + errorTypeText + \"], \" + typeof v + \" received. \" + v);\n }\n v.forEach(function (item) {\n if ((isNullOrUndefined(item) && isRequired_1) ||\n (typeof item !== 'object' && typeof item !== 'undefined')) {\n throw new Error(\"All elements in the \" + name_1 + \" array should be of type \" + type_1.nonModel + \", [\" + typeof item + \"] received. \" + item);\n }\n if (!isNullOrUndefined(item)) {\n Object.keys(subNonModelDefinition_1.fields).forEach(function (subKey) {\n modelValidator_1(subKey, item[subKey]);\n });\n }\n });\n }\n else {\n if (typeof v !== 'object') {\n throw new Error(\"Field \" + name_1 + \" should be of type \" + type_1.nonModel + \", \" + typeof v + \" recieved. \" + v);\n }\n Object.keys(subNonModelDefinition_1.fields).forEach(function (subKey) {\n modelValidator_1(subKey, v[subKey]);\n });\n }\n }\n }\n }\n}; };\nvar castInstanceType = function (modelDefinition, k, v) {\n var _a = modelDefinition.fields[k] || {}, isArray = _a.isArray, type = _a.type;\n // attempt to parse stringified JSON\n if (typeof v === 'string' &&\n (isArray ||\n type === 'AWSJSON' ||\n isNonModelFieldType(type) ||\n isModelFieldType(type))) {\n try {\n return JSON.parse(v);\n }\n catch (_b) {\n // if JSON is invalid, don't throw and let modelValidator handle it\n }\n }\n // cast from numeric representation of boolean to JS boolean\n if (typeof v === 'number' && type === 'Boolean') {\n return Boolean(v);\n }\n return v;\n};\n/**\n * Records the patches (as if against an empty object) used to initialize\n * an instance of a Model. This can be used for determining which fields to\n * send to the cloud durnig a CREATE mutation.\n */\nvar initPatches = new WeakMap();\n/**\n * Attempts to apply type-aware, casted field values from a given `init`\n * object to the given `draft`.\n *\n * @param init The initialization object to extract field values from.\n * @param modelDefinition The definition describing the target object shape.\n * @param draft The draft to apply field values to.\n */\nvar initializeInstance = function (init, modelDefinition, draft) {\n var modelValidator = validateModelFields(modelDefinition);\n Object.entries(init).forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n var parsedValue = castInstanceType(modelDefinition, k, v);\n modelValidator(k, parsedValue);\n draft[k] = parsedValue;\n });\n};\n/**\n * Updates a draft to standardize its customer-defined fields so that they are\n * consistent with the data as it would look after having been synchronized from\n * Cloud storage.\n *\n * The exceptions to this are:\n *\n * 1. Non-schema/Internal [sync] metadata fields.\n * 2. Cloud-managed fields, which are `null` until set by cloud storage.\n *\n * This function should be expanded if/when deviations between canonical Cloud\n * storage data and locally managed data are found. For now, the known areas\n * that require normalization are:\n *\n * 1. Ensuring all non-metadata fields are *defined*. (I.e., turn `undefined` -> `null`.)\n *\n * @param modelDefinition Definition for the draft. Used to discover all fields.\n * @param draft The instance draft to apply normalizations to.\n */\nvar normalize = function (modelDefinition, draft) {\n var e_4, _a;\n try {\n for (var _b = __values(Object.keys(modelDefinition.fields)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var k = _c.value;\n if (draft[k] === undefined)\n draft[k] = null;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n};\nvar createModelClass = function (modelDefinition) {\n var e_5, _a;\n var clazz = /** @class */ (function () {\n function Model(init) {\n // we create a base instance first so we can distinguish which fields were explicitly\n // set by customer code versus those set by normalization. only those fields\n // which are explicitly set by customers should be part of create mutations.\n var patches = [];\n var baseInstance = produce(this, function (draft) {\n initializeInstance(init, modelDefinition, draft);\n // model is initialized inside a DataStore component (e.g. by Sync Engine, Storage Engine, etc.)\n var isInternallyInitialized = instancesMetadata.has(init);\n var modelInstanceMetadata = isInternallyInitialized\n ? init\n : {};\n var _id = modelInstanceMetadata.id;\n if (isIdManaged(modelDefinition)) {\n var isInternalModel = _id !== null && _id !== undefined;\n var id = isInternalModel\n ? _id\n : modelDefinition.syncable\n ? uuid4()\n : ulid();\n draft.id = id;\n }\n else if (isIdOptionallyManaged(modelDefinition)) {\n // only auto-populate if the id was not provided\n draft.id = draft.id || uuid4();\n }\n if (!isInternallyInitialized) {\n checkReadOnlyPropertyOnCreate(draft, modelDefinition);\n }\n var _version = modelInstanceMetadata._version, _lastChangedAt = modelInstanceMetadata._lastChangedAt, _deleted = modelInstanceMetadata._deleted;\n if (modelDefinition.syncable) {\n draft._version = _version;\n draft._lastChangedAt = _lastChangedAt;\n draft._deleted = _deleted;\n }\n }, function (p) { return (patches = p); });\n // now that we have a list of patches that encapsulate the explicit, customer-provided\n // fields, we can normalize. patches from normalization are ignored, because the changes\n // are only create to provide a consistent view of the data for fields pre/post sync\n // where possible. (not all fields can be normalized pre-sync, because they're generally\n // \"cloud managed\" fields, like createdAt and updatedAt.)\n var normalized = produce(baseInstance, function (draft) {\n return normalize(modelDefinition, draft);\n });\n initPatches.set(normalized, patches);\n return normalized;\n }\n Model.copyOf = function (source, fn) {\n var modelConstructor = Object.getPrototypeOf(source || {}).constructor;\n if (!isValidModelConstructor(modelConstructor)) {\n var msg = 'The source object is not a valid model';\n logger.error(msg, { source: source });\n throw new Error(msg);\n }\n var patches = [];\n var model = produce(source, function (draft) {\n fn(draft);\n var keyNames = extractPrimaryKeyFieldNames(modelDefinition);\n // Keys are immutable\n keyNames.forEach(function (key) {\n if (draft[key] !== source[key]) {\n logger.warn(\"copyOf() does not update PK fields. The '\" + key + \"' update is being ignored.\", { source: source });\n }\n draft[key] = source[key];\n });\n var modelValidator = validateModelFields(modelDefinition);\n Object.entries(draft).forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n var parsedValue = castInstanceType(modelDefinition, k, v);\n modelValidator(k, parsedValue);\n });\n normalize(modelDefinition, draft);\n }, function (p) { return (patches = p); });\n var hasExistingPatches = modelPatchesMap.has(source);\n if (patches.length || hasExistingPatches) {\n if (hasExistingPatches) {\n var _a = __read(modelPatchesMap.get(source), 2), existingPatches = _a[0], existingSource = _a[1];\n var mergedPatches = mergePatches(existingSource, existingPatches, patches);\n modelPatchesMap.set(model, [mergedPatches, existingSource]);\n checkReadOnlyPropertyOnUpdate(mergedPatches, modelDefinition);\n }\n else {\n modelPatchesMap.set(model, [patches, source]);\n checkReadOnlyPropertyOnUpdate(patches, modelDefinition);\n }\n }\n else {\n // always register patches when performing a copyOf, even if the\n // patches list is empty. this allows `save()` to recognize when an\n // instance is the result of a `copyOf()`. without more significant\n // refactoring, this is the only way for `save()` to know which\n // diffs (patches) are relevant for `storage` to use in building\n // the list of \"changed\" fields for mutations.\n modelPatchesMap.set(model, [[], source]);\n }\n return attached(model, ModelAttachment.DataStore);\n };\n // \"private\" method (that's hidden via `Setting`) for `withSSRContext` to use\n // to gain access to `modelInstanceCreator` and `clazz` for persisting IDs from server to client.\n Model.fromJSON = function (json) {\n var _this = this;\n if (Array.isArray(json)) {\n return json.map(function (init) { return _this.fromJSON(init); });\n }\n var instance = modelInstanceCreator(clazz, json);\n var modelValidator = validateModelFields(modelDefinition);\n Object.entries(instance).forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n modelValidator(k, v);\n });\n return attached(instance, ModelAttachment.DataStore);\n };\n return Model;\n }());\n clazz[immerable] = true;\n Object.defineProperty(clazz, 'name', { value: modelDefinition.name });\n // Add getters/setters for relationship fields.\n // getter - for lazy loading\n // setter - for FK management\n var allModelRelationships = ModelRelationship.allFrom({\n builder: clazz,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n });\n var _loop_1 = function (relationship) {\n var field = relationship.field;\n Object.defineProperty(clazz.prototype, modelDefinition.fields[field].name, {\n set: function (model) {\n if (!(typeof model === 'object' || typeof model === 'undefined'))\n return;\n // if model is undefined or null, the connection should be removed\n if (model) {\n // Avoid validation error when processing AppSync response with nested\n // selection set. Nested entitites lack version field and can not be validated\n // TODO: explore a more reliable method to solve this\n if (model.hasOwnProperty('_version')) {\n var modelConstructor = Object.getPrototypeOf(model || {})\n .constructor;\n if (!isValidModelConstructor(modelConstructor)) {\n var msg = \"Value passed to \" + modelDefinition.name + \".\" + field + \" is not a valid instance of a model\";\n logger.error(msg, { model: model });\n throw new Error(msg);\n }\n if (modelConstructor.name.toLowerCase() !==\n relationship.remoteModelConstructor.name.toLowerCase()) {\n var msg = \"Value passed to \" + modelDefinition.name + \".\" + field + \" is not an instance of \" + relationship.remoteModelConstructor.name;\n logger.error(msg, { model: model });\n throw new Error(msg);\n }\n }\n }\n // if the relationship can be managed automagically, set the FK's\n if (relationship.isComplete) {\n for (var i = 0; i < relationship.localJoinFields.length; i++) {\n this[relationship.localJoinFields[i]] = model === null || model === void 0 ? void 0 : model[relationship.remoteJoinFields[i]];\n }\n var instanceMemos = modelInstanceAssociationsMap.has(this)\n ? modelInstanceAssociationsMap.get(this)\n : modelInstanceAssociationsMap.set(this, {}).get(this);\n instanceMemos[field] = model || undefined;\n }\n },\n get: function () {\n var _this = this;\n /**\n * Bucket for holding related models instances specific to `this` instance.\n */\n var instanceMemos = modelInstanceAssociationsMap.has(this)\n ? modelInstanceAssociationsMap.get(this)\n : modelInstanceAssociationsMap.set(this, {}).get(this);\n // if the memos already has a result for this field, we'll use it.\n // there is no \"cache\" invalidation of any kind; memos are permanent to\n // keep an immutable perception of the instance.\n if (!instanceMemos.hasOwnProperty(field)) {\n // before we populate the memo, we need to know where to look for relatives.\n // today, this only supports DataStore. Models aren't managed elsewhere in Amplify.\n if (getAttachment(this) === ModelAttachment.DataStore) {\n // when we fetch the results using a query constructed under the guidance\n // of the relationship metadata, we DO NOT AWAIT resolution. we want to\n // drop the promise into the memo's synchronously, eliminating the chance\n // for a race.\n var resultPromise = instance.query(relationship.remoteModelConstructor, function (base) {\n return base.and(function (q) {\n return relationship.remoteJoinFields.map(function (field, index) {\n // TODO: anything we can use instead of `any` here?\n return q[field].eq(_this[relationship.localJoinFields[index]]);\n });\n });\n });\n // results in hand, how we return them to the caller depends on the relationship type.\n if (relationship.type === 'HAS_MANY') {\n // collections should support async iteration, even though we don't\n // leverage it fully [yet].\n instanceMemos[field] = new AsyncCollection(resultPromise);\n }\n else {\n // non-collections should only ever return 1 value *or nothing*.\n // if we have more than 1 record, something's amiss. it's not our job\n // pick a result for the customer. it's our job to say \"something's wrong.\"\n instanceMemos[field] = resultPromise.then(function (rows) {\n if (rows.length > 1) {\n // should never happen for a HAS_ONE or BELONGS_TO.\n var err = new Error(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tData integrity error.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tToo many records found for a HAS_ONE/BELONGS_TO field '\" + modelDefinition.name + \".\" + field + \"'\\n\\t\\t\\t\\t\\t\\t\\t\\t\");\n console.error(err);\n throw err;\n }\n else {\n return rows[0];\n }\n });\n }\n }\n else if (getAttachment(this) === ModelAttachment.API) {\n throw new Error('Lazy loading from API is not yet supported!');\n }\n else {\n if (relationship.type === 'HAS_MANY') {\n return new AsyncCollection([]);\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n }\n return instanceMemos[field];\n },\n });\n };\n try {\n for (var allModelRelationships_1 = __values(allModelRelationships), allModelRelationships_1_1 = allModelRelationships_1.next(); !allModelRelationships_1_1.done; allModelRelationships_1_1 = allModelRelationships_1.next()) {\n var relationship = allModelRelationships_1_1.value;\n _loop_1(relationship);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (allModelRelationships_1_1 && !allModelRelationships_1_1.done && (_a = allModelRelationships_1.return)) _a.call(allModelRelationships_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return clazz;\n};\n/**\n * An eventually loaded related model instance.\n */\nvar AsyncItem = /** @class */ (function (_super) {\n __extends(AsyncItem, _super);\n function AsyncItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return AsyncItem;\n}(Promise));\nexport { AsyncItem };\n/**\n * A collection of related model instances.\n *\n * This collection can be async-iterated or turned directly into an array using `toArray()`.\n */\nvar AsyncCollection = /** @class */ (function () {\n function AsyncCollection(values) {\n this.values = values;\n }\n /**\n * Facilitates async iteration.\n *\n * ```ts\n * for await (const item of collection) {\n * handle(item)\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of\n */\n AsyncCollection.prototype[Symbol.asyncIterator] = function () {\n var _this = this;\n var values;\n var index = 0;\n return {\n next: function () { return __awaiter(_this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!values) return [3 /*break*/, 2];\n return [4 /*yield*/, this.values];\n case 1:\n values = _a.sent();\n _a.label = 2;\n case 2:\n if (index < values.length) {\n result = {\n value: values[index],\n done: false,\n };\n index++;\n return [2 /*return*/, result];\n }\n return [2 /*return*/, {\n value: null,\n done: true,\n }];\n }\n });\n }); },\n };\n };\n /**\n * Turns the collection into an array, up to the amount specified in `max` param.\n *\n * ```ts\n * const all = await collection.toArray();\n * const first100 = await collection.toArray({max: 100});\n * ```\n */\n AsyncCollection.prototype.toArray = function (_a) {\n var _b = (_a === void 0 ? {} : _a).max, max = _b === void 0 ? Number.MAX_SAFE_INTEGER : _b;\n var e_6, _c;\n return __awaiter(this, void 0, void 0, function () {\n var output, i, _d, _e, element, e_6_1;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n output = [];\n i = 0;\n _f.label = 1;\n case 1:\n _f.trys.push([1, 6, 7, 12]);\n _d = __asyncValues(this);\n _f.label = 2;\n case 2: return [4 /*yield*/, _d.next()];\n case 3:\n if (!(_e = _f.sent(), !_e.done)) return [3 /*break*/, 5];\n element = _e.value;\n if (i < max) {\n output.push(element);\n i++;\n }\n else {\n return [3 /*break*/, 5];\n }\n _f.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_6_1 = _f.sent();\n e_6 = { error: e_6_1 };\n return [3 /*break*/, 12];\n case 7:\n _f.trys.push([7, , 10, 11]);\n if (!(_e && !_e.done && (_c = _d.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _c.call(_d)];\n case 8:\n _f.sent();\n _f.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_6) throw e_6.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12: return [2 /*return*/, output];\n }\n });\n });\n };\n return AsyncCollection;\n}());\nexport { AsyncCollection };\nvar checkReadOnlyPropertyOnCreate = function (draft, modelDefinition) {\n var modelKeys = Object.keys(draft);\n var fields = modelDefinition.fields;\n modelKeys.forEach(function (key) {\n if (fields[key] && fields[key].isReadOnly) {\n throw new Error(key + \" is read-only.\");\n }\n });\n};\nvar checkReadOnlyPropertyOnUpdate = function (patches, modelDefinition) {\n var patchArray = patches.map(function (p) { return [p.path[0], p.value]; });\n var fields = modelDefinition.fields;\n patchArray.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], val = _b[1];\n if (!val || !fields[key])\n return;\n if (fields[key].isReadOnly) {\n throw new Error(key + \" is read-only.\");\n }\n });\n};\nvar createNonModelClass = function (typeDefinition) {\n var clazz = /** @class */ (function () {\n function Model(init) {\n var instance = produce(this, function (draft) {\n initializeInstance(init, typeDefinition, draft);\n });\n return instance;\n }\n return Model;\n }());\n clazz[immerable] = true;\n Object.defineProperty(clazz, 'name', { value: typeDefinition.name });\n registerNonModelClass(clazz);\n return clazz;\n};\nfunction isQueryOne(obj) {\n return typeof obj === 'string';\n}\nfunction defaultConflictHandler(conflictData) {\n var localModel = conflictData.localModel, modelConstructor = conflictData.modelConstructor, remoteModel = conflictData.remoteModel;\n var _version = remoteModel._version;\n return modelInstanceCreator(modelConstructor, __assign(__assign({}, localModel), { _version: _version }));\n}\nfunction defaultErrorHandler(error) {\n logger.warn(error);\n}\nfunction getModelConstructorByModelName(namespaceName, modelName) {\n var result;\n switch (namespaceName) {\n case DATASTORE:\n result = dataStoreClasses[modelName];\n break;\n case USER:\n result = userClasses[modelName];\n break;\n case SYNC:\n result = syncClasses[modelName];\n break;\n case STORAGE:\n result = storageClasses[modelName];\n break;\n default:\n throw new Error(\"Invalid namespace: \" + namespaceName);\n }\n if (isValidModelConstructor(result)) {\n return result;\n }\n else {\n var msg = \"Model name is not valid for namespace. modelName: \" + modelName + \", namespace: \" + namespaceName;\n logger.error(msg);\n throw new Error(msg);\n }\n}\n/**\n * Queries the DataStore metadata tables to see if they are the expected\n * version. If not, clobbers the whole DB. If so, leaves them alone.\n * Otherwise, simply writes the schema version.\n *\n * SIDE EFFECT:\n * 1. Creates a transaction\n * 1. Updates data.\n *\n * @param storage Storage adapter containing the metadata.\n * @param version The expected schema version.\n */\nfunction checkSchemaVersion(storage, version) {\n return __awaiter(this, void 0, void 0, function () {\n var Setting, modelDefinition;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n Setting = dataStoreClasses.Setting;\n modelDefinition = schema.namespaces[DATASTORE].models.Setting;\n return [4 /*yield*/, storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {\n var _a, schemaVersionSetting, storedValue;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, s.query(Setting, ModelPredicateCreator.createFromAST(modelDefinition, {\n and: { key: { eq: SETTING_SCHEMA_VERSION } },\n }), { page: 0, limit: 1 })];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 1]), schemaVersionSetting = _a[0];\n if (!(schemaVersionSetting !== undefined &&\n schemaVersionSetting.value !== undefined)) return [3 /*break*/, 4];\n storedValue = JSON.parse(schemaVersionSetting.value);\n if (!(storedValue !== version)) return [3 /*break*/, 3];\n return [4 /*yield*/, s.clear(false)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3: return [3 /*break*/, 6];\n case 4: return [4 /*yield*/, s.save(modelInstanceCreator(Setting, {\n key: SETTING_SCHEMA_VERSION,\n value: JSON.stringify(version),\n }))];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\nvar syncSubscription;\nfunction getNamespace() {\n var namespace = {\n name: DATASTORE,\n relationships: {},\n enums: {},\n nonModels: {},\n models: {\n Setting: {\n name: 'Setting',\n pluralName: 'Settings',\n syncable: false,\n fields: {\n id: {\n name: 'id',\n type: 'ID',\n isRequired: true,\n isArray: false,\n },\n key: {\n name: 'key',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n value: {\n name: 'value',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n },\n },\n },\n };\n return namespace;\n}\nvar DataStoreState;\n(function (DataStoreState) {\n DataStoreState[\"NotRunning\"] = \"Not Running\";\n DataStoreState[\"Starting\"] = \"Starting\";\n DataStoreState[\"Running\"] = \"Running\";\n DataStoreState[\"Stopping\"] = \"Stopping\";\n DataStoreState[\"Clearing\"] = \"Clearing\";\n})(DataStoreState || (DataStoreState = {}));\n// TODO: How can we get rid of the non-null assertions?\n// https://github.com/aws-amplify/amplify-js/pull/10477/files#r1007363485\nvar DataStore = /** @class */ (function () {\n function DataStore() {\n var _this = this;\n // reference to configured category instances. Used for preserving SSR context\n this.Auth = Auth;\n this.InternalAPI = InternalAPI;\n this.Cache = Cache;\n // Non-null assertions (bang operator) have been added to most of these properties\n // to make TS happy. These properties are all expected to be set immediately after\n // construction.\n // TODO: Refactor to use proper DI if possible. If not possible, change these to\n // optionals and implement conditional checks throughout. Rinse/repeat on all\n // sync engine processors, storage engine, adapters, etc..\n this.amplifyConfig = {};\n this.syncPredicates = new WeakMap();\n // object that gets passed to descendent classes. Allows us to pass these down by reference\n this.amplifyContext = {\n Auth: this.Auth,\n InternalAPI: this.InternalAPI,\n Cache: this.Cache,\n };\n /**\n * **IMPORTANT!**\n *\n * Accumulator for background things that can **and MUST** be called when\n * DataStore stops.\n *\n * These jobs **MUST** be *idempotent promises* that resolve ONLY\n * once the intended jobs are completely finished and/or otherwise destroyed\n * and cleaned up with ZERO outstanding:\n *\n * 1. side effects (e.g., state changes)\n * 1. callbacks\n * 1. subscriptions\n * 1. calls to storage\n * 1. *etc.*\n *\n * Methods that create pending promises, subscriptions, callbacks, or any\n * type of side effect **MUST** be registered with the manager. And, a new\n * manager must be created after each `exit()`.\n *\n * Failure to comply will put DataStore into a highly unpredictable state\n * when it needs to stop or clear -- which occurs when restarting with new\n * sync expressions, during testing, and potentially during app code\n * recovery handling, etc..\n *\n * It is up to the discretion of each disposer whether to wait for job\n * completion or to cancel operations and issue failures *as long as the\n * disposer returns in a reasonable amount of time.*\n *\n * (Reasonable = *seconds*, not minutes.)\n */\n this.runningProcesses = new BackgroundProcessManager();\n /**\n * Indicates what state DataStore is in.\n *\n * Not [yet?] used for actual state management; but for messaging\n * when errors occur, to help troubleshoot.\n */\n this.state = DataStoreState.NotRunning;\n /**\n * If not already done:\n * 1. Attaches and initializes storage.\n * 2. Loads the schema and records metadata.\n * 3. If `this.amplifyConfig.aws_appsync_graphqlEndpoint` contains a URL,\n * attaches a sync engine, starts it, and subscribes.\n */\n this.start = function () { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var aws_appsync_graphqlEndpoint, _a, fullSyncIntervalInMilliseconds;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.state = DataStoreState.Starting;\n if (!(this.initialized === undefined)) return [3 /*break*/, 1];\n logger.debug('Starting DataStore');\n this.initialized = new Promise(function (res, rej) {\n _this.initResolve = res;\n _this.initReject = rej;\n });\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.initialized];\n case 2:\n _b.sent();\n return [2 /*return*/];\n case 3:\n this.storage = new Storage(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, this.storageAdapter, this.sessionId);\n return [4 /*yield*/, this.storage.init()];\n case 4:\n _b.sent();\n checkSchemaInitialized();\n return [4 /*yield*/, checkSchemaVersion(this.storage, schema.version)];\n case 5:\n _b.sent();\n aws_appsync_graphqlEndpoint = this.amplifyConfig.aws_appsync_graphqlEndpoint;\n if (!aws_appsync_graphqlEndpoint) return [3 /*break*/, 7];\n logger.debug('GraphQL endpoint available', aws_appsync_graphqlEndpoint);\n _a = this;\n return [4 /*yield*/, this.processSyncExpressions()];\n case 6:\n _a.syncPredicates = _b.sent();\n this.sync = new SyncEngine(schema, namespaceResolver, syncClasses, userClasses, this.storage, modelInstanceCreator, this.conflictHandler, this.errorHandler, this.syncPredicates, this.amplifyConfig, this.authModeStrategy, this.amplifyContext, this.connectivityMonitor);\n fullSyncIntervalInMilliseconds = this.fullSyncInterval * 1000 * 60;\n syncSubscription = this.sync\n .start({ fullSyncInterval: fullSyncIntervalInMilliseconds })\n .subscribe({\n next: function (_a) {\n var type = _a.type, data = _a.data;\n // In Node, we need to wait for queries to be synced to prevent returning empty arrays.\n // In the Browser, we can begin returning data once subscriptions are in place.\n var readyType = isNode\n ? ControlMessage.SYNC_ENGINE_SYNC_QUERIES_READY\n : ControlMessage.SYNC_ENGINE_STORAGE_SUBSCRIBED;\n if (type === readyType) {\n _this.initResolve();\n }\n Hub.dispatch('datastore', {\n event: type,\n data: data,\n });\n },\n error: function (err) {\n logger.warn('Sync error', err);\n _this.initReject();\n },\n });\n return [3 /*break*/, 8];\n case 7:\n logger.warn(\"Data won't be synchronized. No GraphQL endpoint configured. Did you forget `Amplify.configure(awsconfig)`?\", {\n config: this.amplifyConfig,\n });\n this.initResolve();\n _b.label = 8;\n case 8: return [4 /*yield*/, this.initialized];\n case 9:\n _b.sent();\n this.state = DataStoreState.Running;\n return [2 /*return*/];\n }\n });\n }); }, 'datastore start')\n .catch(this.handleAddProcError('DataStore.start()'))];\n });\n }); };\n this.query = function (modelConstructor, identifierOrCriteria, paginationProducer) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var result, msg, modelDefinition, pagination, keyFields, msg, predicate, predicate, seedPredicate, predicate, returnOne;\n var _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.start()];\n case 1:\n _c.sent();\n if (!this.storage) {\n throw new Error('No storage to query');\n }\n //#region Input validation\n if (!isValidModelConstructor(modelConstructor)) {\n msg = 'Constructor is not for a valid model';\n logger.error(msg, { modelConstructor: modelConstructor });\n throw new Error(msg);\n }\n if (typeof identifierOrCriteria === 'string') {\n if (paginationProducer !== undefined) {\n logger.warn('Pagination is ignored when querying by id');\n }\n }\n modelDefinition = getModelDefinition(modelConstructor);\n if (!modelDefinition) {\n throw new Error('Invalid model definition provided!');\n }\n pagination = this.processPagination(modelDefinition, paginationProducer);\n keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n if (!isQueryOne(identifierOrCriteria)) return [3 /*break*/, 3];\n if (keyFields.length > 1) {\n msg = errorMessages.queryByPkWithCompositeKeyPresent;\n logger.error(msg, { keyFields: keyFields });\n throw new Error(msg);\n }\n predicate = ModelPredicateCreator.createFromFlatEqualities(modelDefinition, (_a = {}, _a[keyFields[0]] = identifierOrCriteria, _a));\n return [4 /*yield*/, this.storage.query(modelConstructor, predicate, pagination)];\n case 2:\n result = _c.sent();\n return [3 /*break*/, 9];\n case 3:\n if (!isIdentifierObject(identifierOrCriteria, modelDefinition)) return [3 /*break*/, 5];\n predicate = ModelPredicateCreator.createForPk(modelDefinition, identifierOrCriteria);\n return [4 /*yield*/, this.storage.query(modelConstructor, predicate, pagination)];\n case 4:\n result = _c.sent();\n return [3 /*break*/, 9];\n case 5:\n if (!(!identifierOrCriteria ||\n isPredicatesAll(identifierOrCriteria))) return [3 /*break*/, 7];\n return [4 /*yield*/, ((_b = this.storage) === null || _b === void 0 ? void 0 : _b.query(modelConstructor, undefined, pagination))];\n case 6:\n result = _c.sent();\n return [3 /*break*/, 9];\n case 7:\n seedPredicate = recursivePredicateFor({\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n });\n predicate = internals(identifierOrCriteria(seedPredicate));\n return [4 /*yield*/, predicate.fetch(this.storage)];\n case 8:\n result = (_c.sent());\n result = inMemoryPagination(result, pagination);\n _c.label = 9;\n case 9:\n returnOne = isQueryOne(identifierOrCriteria) ||\n isIdentifierObject(identifierOrCriteria, modelDefinition);\n return [2 /*return*/, attached(returnOne ? result[0] : result, ModelAttachment.DataStore)];\n }\n });\n }); }, 'datastore query')\n .catch(this.handleAddProcError('DataStore.query()'))];\n });\n }); };\n this.save = function (model, condition) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var updatedPatchesTuple, initPatchesTuple, patchesTuple, modelConstructor, msg, modelDefinition, modelMeta, producedCondition, _a, savedModel;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.start()];\n case 1:\n _b.sent();\n if (!this.storage) {\n throw new Error('No storage to save to');\n }\n updatedPatchesTuple = modelPatchesMap.get(model);\n initPatchesTuple = initPatches.has(model)\n ? [initPatches.get(model), {}]\n : undefined;\n patchesTuple = updatedPatchesTuple || initPatchesTuple;\n modelConstructor = model ? model.constructor : undefined;\n if (!isValidModelConstructor(modelConstructor)) {\n msg = 'Object is not an instance of a valid model';\n logger.error(msg, { model: model });\n throw new Error(msg);\n }\n modelDefinition = getModelDefinition(modelConstructor);\n if (!modelDefinition) {\n throw new Error('Model Definition could not be found for model');\n }\n modelMeta = {\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n };\n return [4 /*yield*/, this.storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {\n var nonHasManyRelationships, nonHasManyRelationships_1, nonHasManyRelationships_1_1, relationship, queryObject, related, e_7_1;\n var e_7, _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n nonHasManyRelationships = ModelRelationship.allFrom(modelMeta).filter(function (r) { return r.type === 'BELONGS_TO'; });\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 8]);\n nonHasManyRelationships_1 = __values(nonHasManyRelationships), nonHasManyRelationships_1_1 = nonHasManyRelationships_1.next();\n _c.label = 2;\n case 2:\n if (!!nonHasManyRelationships_1_1.done) return [3 /*break*/, 5];\n relationship = nonHasManyRelationships_1_1.value;\n queryObject = relationship.createRemoteQueryObject(model);\n if (!(queryObject !== null)) return [3 /*break*/, 4];\n return [4 /*yield*/, s.query(relationship.remoteModelConstructor, ModelPredicateCreator.createFromFlatEqualities(relationship.remoteDefinition, queryObject))];\n case 3:\n related = _c.sent();\n if (related.length === 0) {\n throw new Error([\n \"Data integrity error. You tried to save a \" + modelDefinition.name + \" (\" + JSON.stringify(model) + \")\",\n \"but the instance assigned to the \\\"\" + relationship.field + \"\\\" property\",\n \"does not exist in the local database. If you're trying to create the related\",\n \"\\\"\" + ((_b = relationship.remoteDefinition) === null || _b === void 0 ? void 0 : _b.name) + \"\\\", you must save it independently first.\",\n ].join(' '));\n }\n _c.label = 4;\n case 4:\n nonHasManyRelationships_1_1 = nonHasManyRelationships_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_7_1 = _c.sent();\n e_7 = { error: e_7_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (nonHasManyRelationships_1_1 && !nonHasManyRelationships_1_1.done && (_a = nonHasManyRelationships_1.return)) _a.call(nonHasManyRelationships_1);\n }\n finally { if (e_7) throw e_7.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n }); })];\n case 2:\n _b.sent();\n producedCondition = condition\n ? internals(condition(predicateFor(modelMeta))).toStoragePredicate()\n : undefined;\n return [4 /*yield*/, this.storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {\n var saved;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, s.save(model, producedCondition, undefined, patchesTuple)];\n case 1:\n saved = _a.sent();\n return [2 /*return*/, s.query(modelConstructor, ModelPredicateCreator.createForPk(modelDefinition, model))];\n }\n });\n }); })];\n case 3:\n _a = __read.apply(void 0, [_b.sent(), 1]), savedModel = _a[0];\n return [2 /*return*/, attached(savedModel, ModelAttachment.DataStore)];\n }\n });\n }); }, 'datastore save')\n .catch(this.handleAddProcError('DataStore.save()'))];\n });\n }); };\n this.setConflictHandler = function (config) {\n var configDataStore = config.DataStore;\n var conflictHandlerIsDefault = function () {\n return _this.conflictHandler === defaultConflictHandler;\n };\n if (configDataStore && configDataStore.conflictHandler) {\n return configDataStore.conflictHandler;\n }\n if (conflictHandlerIsDefault() && config.conflictHandler) {\n return config.conflictHandler;\n }\n return _this.conflictHandler || defaultConflictHandler;\n };\n this.setErrorHandler = function (config) {\n var configDataStore = config.DataStore;\n var errorHandlerIsDefault = function () {\n return _this.errorHandler === defaultErrorHandler;\n };\n if (configDataStore && configDataStore.errorHandler) {\n return configDataStore.errorHandler;\n }\n if (errorHandlerIsDefault() && config.errorHandler) {\n return config.errorHandler;\n }\n return _this.errorHandler || defaultErrorHandler;\n };\n this.delete = function (modelOrConstructor, identifierOrCriteria) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var condition, msg, modelConstructor, msg, modelDefinition, keyFields, msg, msg, _a, deleted, model, modelConstructor, msg, modelDefinition, pkPredicate, msg, _b, _c, deleted;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0: return [4 /*yield*/, this.start()];\n case 1:\n _e.sent();\n if (!this.storage) {\n throw new Error('No storage to delete from');\n }\n if (!modelOrConstructor) {\n msg = 'Model or Model Constructor required';\n logger.error(msg, { modelOrConstructor: modelOrConstructor });\n throw new Error(msg);\n }\n if (!isValidModelConstructor(modelOrConstructor)) return [3 /*break*/, 3];\n modelConstructor = modelOrConstructor;\n if (!identifierOrCriteria) {\n msg = 'Id to delete or criteria required. Do you want to delete all? Pass Predicates.ALL';\n logger.error(msg, { identifierOrCriteria: identifierOrCriteria });\n throw new Error(msg);\n }\n modelDefinition = getModelDefinition(modelConstructor);\n if (!modelDefinition) {\n throw new Error('Could not find model definition for modelConstructor.');\n }\n if (typeof identifierOrCriteria === 'string') {\n keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n if (keyFields.length > 1) {\n msg = errorMessages.deleteByPkWithCompositeKeyPresent;\n logger.error(msg, { keyFields: keyFields });\n throw new Error(msg);\n }\n condition = ModelPredicateCreator.createFromFlatEqualities(modelDefinition, (_d = {}, _d[keyFields[0]] = identifierOrCriteria, _d));\n }\n else {\n if (isIdentifierObject(identifierOrCriteria, modelDefinition)) {\n condition = ModelPredicateCreator.createForPk(modelDefinition, identifierOrCriteria);\n }\n else {\n condition = internals(identifierOrCriteria(predicateFor({\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n }))).toStoragePredicate();\n }\n if (!condition ||\n !ModelPredicateCreator.isValidPredicate(condition)) {\n msg = 'Criteria required. Do you want to delete all? Pass Predicates.ALL';\n logger.error(msg, { condition: condition });\n throw new Error(msg);\n }\n }\n return [4 /*yield*/, this.storage.delete(modelConstructor, condition)];\n case 2:\n _a = __read.apply(void 0, [_e.sent(), 1]), deleted = _a[0];\n return [2 /*return*/, attached(deleted, ModelAttachment.DataStore)];\n case 3:\n model = modelOrConstructor;\n modelConstructor = Object.getPrototypeOf(model || {})\n .constructor;\n if (!isValidModelConstructor(modelConstructor)) {\n msg = 'Object is not an instance of a valid model';\n logger.error(msg, { model: model });\n throw new Error(msg);\n }\n modelDefinition = getModelDefinition(modelConstructor);\n if (!modelDefinition) {\n throw new Error('Could not find model definition for modelConstructor.');\n }\n pkPredicate = ModelPredicateCreator.createForPk(modelDefinition, model);\n if (identifierOrCriteria) {\n if (typeof identifierOrCriteria !== 'function') {\n msg = 'Invalid criteria';\n logger.error(msg, { identifierOrCriteria: identifierOrCriteria });\n throw new Error(msg);\n }\n condition = internals(identifierOrCriteria(predicateFor({\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n }))).toStoragePredicate();\n }\n else {\n condition = pkPredicate;\n }\n return [4 /*yield*/, this.storage.delete(model, condition)];\n case 4:\n _b = __read.apply(void 0, [_e.sent(), 1]), _c = __read(_b[0], 1), deleted = _c[0];\n return [2 /*return*/, attached(deleted, ModelAttachment.DataStore)];\n }\n });\n }); }, 'datastore delete')\n .catch(this.handleAddProcError('DataStore.delete()'))];\n });\n }); };\n this.observe = function (modelOrConstructor, identifierOrCriteria) {\n var executivePredicate;\n var modelConstructor = modelOrConstructor && isValidModelConstructor(modelOrConstructor)\n ? modelOrConstructor\n : undefined;\n if (modelOrConstructor && modelConstructor === undefined) {\n var model = modelOrConstructor;\n var modelConstructor_1 = model && Object.getPrototypeOf(model).constructor;\n if (isValidModelConstructor(modelConstructor_1)) {\n if (identifierOrCriteria) {\n logger.warn('idOrCriteria is ignored when using a model instance', {\n model: model,\n identifierOrCriteria: identifierOrCriteria,\n });\n }\n return _this.observe(modelConstructor_1, model.id);\n }\n else {\n var msg = 'The model is not an instance of a PersistentModelConstructor';\n logger.error(msg, { model: model });\n throw new Error(msg);\n }\n }\n // observe should not accept object literal syntax\n if (identifierOrCriteria &&\n modelConstructor &&\n isIdentifierObject(identifierOrCriteria, getModelDefinition(modelConstructor))) {\n var msg = errorMessages.observeWithObjectLiteral;\n logger.error(msg, { objectLiteral: identifierOrCriteria });\n throw new Error(msg);\n }\n if (identifierOrCriteria !== undefined && modelConstructor === undefined) {\n var msg = 'Cannot provide criteria without a modelConstructor';\n logger.error(msg, identifierOrCriteria);\n throw new Error(msg);\n }\n if (modelConstructor && !isValidModelConstructor(modelConstructor)) {\n var msg = 'Constructor is not for a valid model';\n logger.error(msg, { modelConstructor: modelConstructor });\n throw new Error(msg);\n }\n if (modelConstructor && typeof identifierOrCriteria === 'string') {\n var buildIdPredicate = function (seed) { return seed.id.eq(identifierOrCriteria); };\n executivePredicate = internals(buildIdPredicate(buildSeedPredicate(modelConstructor)));\n }\n else if (modelConstructor && typeof identifierOrCriteria === 'function') {\n executivePredicate = internals(identifierOrCriteria(buildSeedPredicate(modelConstructor)));\n }\n return new Observable(function (observer) {\n var source;\n _this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.start()];\n case 1:\n _a.sent();\n // Filter the events returned by Storage according to namespace,\n // append original element data, and subscribe to the observable\n source = this.storage.observe(modelConstructor)\n .filter(function (_a) {\n var model = _a.model;\n return namespaceResolver(model) === USER;\n })\n .subscribe({\n next: function (item) {\n return _this.runningProcesses.isOpen &&\n _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var message, modelDefinition, keyFields, primaryKeysAndValues, freshElement, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n message = item;\n if (!(item.opType !== 'DELETE')) return [3 /*break*/, 2];\n modelDefinition = getModelDefinition(item.model);\n keyFields = extractPrimaryKeyFieldNames(modelDefinition);\n primaryKeysAndValues = extractPrimaryKeysAndValues(item.element, keyFields);\n return [4 /*yield*/, this.query(item.model, primaryKeysAndValues)];\n case 1:\n freshElement = _b.sent();\n message = __assign(__assign({}, message), { element: freshElement });\n _b.label = 2;\n case 2:\n _a = !executivePredicate;\n if (_a) return [3 /*break*/, 4];\n return [4 /*yield*/, executivePredicate.matches(message.element)];\n case 3:\n _a = (_b.sent());\n _b.label = 4;\n case 4:\n if (_a) {\n observer.next(message);\n }\n return [2 /*return*/];\n }\n });\n }); }, 'datastore observe message handler');\n },\n error: function (err) { return observer.error(err); },\n complete: function () { return observer.complete(); },\n });\n return [2 /*return*/];\n }\n });\n }); }, 'datastore observe observable initialization')\n .catch(_this.handleAddProcError('DataStore.observe()'))\n .catch(function (error) {\n observer.error(error);\n });\n // better than no cleaner, but if the subscriber is handling the\n // complete() message async and not registering with the context,\n // this will still be problematic.\n return _this.runningProcesses.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (source) {\n source.unsubscribe();\n }\n return [2 /*return*/];\n });\n }); }, 'DataStore.observe() cleanup');\n });\n };\n this.observeQuery = function (model, criteria, options) {\n return new Observable(function (observer) {\n var items = new Map();\n var itemsChanged = new Map();\n var deletedItemIds = [];\n var handle;\n // let predicate: ModelPredicate | undefined;\n var executivePredicate;\n /**\n * As the name suggests, this geneates a snapshot in the form of\n * \t`{items: T[], isSynced: boolean}`\n * and sends it to the observer.\n *\n * SIDE EFFECT: The underlying generation and emission methods may touch:\n * `items`, `itemsChanged`, and `deletedItemIds`.\n *\n * Refer to `generateSnapshot` and `emitSnapshot` for more details.\n */\n var generateAndEmitSnapshot = function () {\n var snapshot = generateSnapshot();\n emitSnapshot(snapshot);\n };\n // a mechanism to return data after X amount of seconds OR after the\n // \"limit\" (itemsChanged >= this.syncPageSize) has been reached, whichever comes first\n var limitTimerRace = new DeferredCallbackResolver({\n callback: generateAndEmitSnapshot,\n errorHandler: observer.error,\n maxInterval: 2000,\n });\n var sort = (options || {}).sort;\n var sortOptions = sort ? { sort: sort } : undefined;\n var modelDefinition = getModelDefinition(model);\n if (!modelDefinition) {\n throw new Error('Could not find model definition.');\n }\n if (model && typeof criteria === 'function') {\n executivePredicate = internals(criteria(buildSeedPredicate(model)));\n }\n else if (isPredicatesAll(criteria)) {\n executivePredicate = undefined;\n }\n _this.runningProcesses\n .add(function () { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.query(model, criteria, sortOptions)];\n case 1:\n // first, query and return any locally-available records\n (_a.sent()).forEach(function (item) {\n var itemModelDefinition = getModelDefinition(model);\n var idOrPk = getIdentifierValue(itemModelDefinition, item);\n items.set(idOrPk, item);\n });\n // Observe the model and send a stream of updates (debounced).\n // We need to post-filter results instead of passing criteria through\n // to have visibility into items that move from in-set to out-of-set.\n // We need to explicitly remove those items from the existing snapshot.\n handle = this.observe(model).subscribe(function (_a) {\n var element = _a.element, model = _a.model, opType = _a.opType;\n return _this.runningProcesses.isOpen &&\n _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {\n var itemModelDefinition, idOrPk, _a, isSynced, limit;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n itemModelDefinition = getModelDefinition(model);\n idOrPk = getIdentifierValue(itemModelDefinition, element);\n _a = executivePredicate;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, executivePredicate.matches(element)];\n case 1:\n _a = !(_d.sent());\n _d.label = 2;\n case 2:\n if (_a) {\n if (opType === 'UPDATE' &&\n (items.has(idOrPk) || itemsChanged.has(idOrPk))) {\n // tracking as a \"deleted item\" will include the item in\n // page limit calculations and ensure it is removed from the\n // final items collection, regardless of which collection(s)\n // it is currently in. (I mean, it could be in both, right!?)\n deletedItemIds.push(idOrPk);\n }\n else {\n // ignore updates for irrelevant/filtered items.\n return [2 /*return*/];\n }\n }\n // Flag items which have been recently deleted\n // NOTE: Merging of separate operations to the same model instance is handled upstream\n // in the `mergePage` method within src/sync/merger.ts. The final state of a model instance\n // depends on the LATEST record (for a given id).\n if (opType === 'DELETE') {\n deletedItemIds.push(idOrPk);\n }\n else {\n itemsChanged.set(idOrPk, element);\n }\n isSynced = (_c = (_b = this.sync) === null || _b === void 0 ? void 0 : _b.getModelSyncedStatus(model)) !== null && _c !== void 0 ? _c : false;\n limit = itemsChanged.size - deletedItemIds.length >=\n this.syncPageSize;\n if (limit || isSynced) {\n limitTimerRace.resolve();\n }\n // kicks off every subsequent race as results sync down\n limitTimerRace.start();\n return [2 /*return*/];\n }\n });\n }); }, 'handle observeQuery observed event');\n });\n // returns a set of initial/locally-available results\n generateAndEmitSnapshot();\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n observer.error(err_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }, 'datastore observequery startup')\n .catch(_this.handleAddProcError('DataStore.observeQuery()'))\n .catch(function (error) {\n observer.error(error);\n });\n /**\n * Combines the `items`, `itemsChanged`, and `deletedItemIds` collections into\n * a snapshot in the form of `{ items: T[], isSynced: boolean}`.\n *\n * SIDE EFFECT: The shared `items` collection is recreated.\n */\n var generateSnapshot = function () {\n var _a, _b;\n var isSynced = (_b = (_a = _this.sync) === null || _a === void 0 ? void 0 : _a.getModelSyncedStatus(model)) !== null && _b !== void 0 ? _b : false;\n var itemsArray = __spread(Array.from(items.values()), Array.from(itemsChanged.values()));\n items.clear();\n itemsArray.forEach(function (item) {\n var itemModelDefinition = getModelDefinition(model);\n var idOrPk = getIdentifierValue(itemModelDefinition, item);\n items.set(idOrPk, item);\n });\n // remove deleted items from the final result set\n deletedItemIds.forEach(function (idOrPk) { return items.delete(idOrPk); });\n var snapshot = Array.from(items.values());\n // we sort after we merge the snapshots (items, itemsChanged)\n // otherwise, the merge may not\n if (options === null || options === void 0 ? void 0 : options.sort) {\n sortItems(snapshot);\n }\n return {\n items: snapshot,\n isSynced: isSynced,\n };\n };\n /**\n * Emits the list of items to the observer.\n *\n * SIDE EFFECT: `itemsChanged` and `deletedItemIds` are cleared to prepare\n * for the next snapshot.\n *\n * @param snapshot The generated items data to emit.\n */\n var emitSnapshot = function (snapshot) {\n // send the generated snapshot to the primary subscription.\n // NOTE: This observer's handler *could* be async ...\n observer.next(snapshot);\n // reset the changed items sets\n itemsChanged.clear();\n deletedItemIds = [];\n };\n /**\n * Sorts an `Array` of `T` according to the sort instructions given in the\n * original `observeQuery()` call.\n *\n * @param itemsToSort A array of model type.\n */\n var sortItems = function (itemsToSort) {\n var modelDefinition = getModelDefinition(model);\n var pagination = _this.processPagination(modelDefinition, options);\n var sortPredicates = ModelSortPredicateCreator.getPredicates(pagination.sort);\n if (sortPredicates.length) {\n var compareFn = sortCompareFunction(sortPredicates);\n itemsToSort.sort(compareFn);\n }\n };\n /**\n * Force one last snapshot when the model is fully synced.\n *\n * This reduces latency for that last snapshot, which will otherwise\n * wait for the configured timeout.\n *\n * @param payload The payload from the Hub event.\n */\n var hubCallback = function (_a) {\n var payload = _a.payload;\n var _b;\n var event = payload.event, data = payload.data;\n if (event === ControlMessage.SYNC_ENGINE_MODEL_SYNCED &&\n ((_b = data === null || data === void 0 ? void 0 : data.model) === null || _b === void 0 ? void 0 : _b.name) === model.name) {\n generateAndEmitSnapshot();\n Hub.remove('datastore', hubCallback);\n }\n };\n Hub.listen('datastore', hubCallback);\n return _this.runningProcesses.addCleaner(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (handle) {\n handle.unsubscribe();\n }\n return [2 /*return*/];\n });\n }); }, 'datastore observequery cleaner');\n });\n };\n this.configure = function (config) {\n if (config === void 0) { config = {}; }\n _this.amplifyContext.Auth = _this.Auth;\n _this.amplifyContext.InternalAPI = _this.InternalAPI;\n _this.amplifyContext.Cache = _this.Cache;\n var configDataStore = config.DataStore, configAuthModeStrategyType = config.authModeStrategyType, configConflictHandler = config.conflictHandler, configErrorHandler = config.errorHandler, configMaxRecordsToSync = config.maxRecordsToSync, configSyncPageSize = config.syncPageSize, configFullSyncInterval = config.fullSyncInterval, configSyncExpressions = config.syncExpressions, configAuthProviders = config.authProviders, configStorageAdapter = config.storageAdapter, configFromAmplify = __rest(config, [\"DataStore\", \"authModeStrategyType\", \"conflictHandler\", \"errorHandler\", \"maxRecordsToSync\", \"syncPageSize\", \"fullSyncInterval\", \"syncExpressions\", \"authProviders\", \"storageAdapter\"]);\n _this.amplifyConfig = __assign(__assign({}, configFromAmplify), _this.amplifyConfig);\n _this.conflictHandler = _this.setConflictHandler(config);\n _this.errorHandler = _this.setErrorHandler(config);\n var authModeStrategyType = (configDataStore && configDataStore.authModeStrategyType) ||\n configAuthModeStrategyType ||\n AuthModeStrategyType.DEFAULT;\n switch (authModeStrategyType) {\n case AuthModeStrategyType.MULTI_AUTH:\n _this.authModeStrategy = multiAuthStrategy(_this.amplifyContext);\n break;\n case AuthModeStrategyType.DEFAULT:\n _this.authModeStrategy = defaultAuthStrategy;\n break;\n default:\n _this.authModeStrategy = defaultAuthStrategy;\n break;\n }\n // store on config object, so that Sync, Subscription, and Mutation processors can have access\n _this.amplifyConfig.authProviders =\n (configDataStore && configDataStore.authProviders) || configAuthProviders;\n _this.syncExpressions =\n (configDataStore && configDataStore.syncExpressions) ||\n configSyncExpressions ||\n _this.syncExpressions;\n _this.maxRecordsToSync =\n (configDataStore && configDataStore.maxRecordsToSync) ||\n configMaxRecordsToSync ||\n _this.maxRecordsToSync ||\n 10000;\n // store on config object, so that Sync, Subscription, and Mutation processors can have access\n _this.amplifyConfig.maxRecordsToSync = _this.maxRecordsToSync;\n _this.syncPageSize =\n (configDataStore && configDataStore.syncPageSize) ||\n configSyncPageSize ||\n _this.syncPageSize ||\n 1000;\n // store on config object, so that Sync, Subscription, and Mutation processors can have access\n _this.amplifyConfig.syncPageSize = _this.syncPageSize;\n _this.fullSyncInterval =\n (configDataStore && configDataStore.fullSyncInterval) ||\n configFullSyncInterval ||\n _this.fullSyncInterval ||\n 24 * 60; // 1 day\n _this.storageAdapter =\n (configDataStore && configDataStore.storageAdapter) ||\n configStorageAdapter ||\n _this.storageAdapter ||\n undefined;\n _this.sessionId = _this.retrieveSessionId();\n };\n }\n DataStore.prototype.getModuleName = function () {\n return 'DataStore';\n };\n /**\n * Builds a function to capture `BackgroundManagerNotOpenError`'s to produce friendlier,\n * more instructive errors for customers.\n *\n * @param operation The name of the operation (usually a Datastore method) the customer\n * tried to call.\n */\n DataStore.prototype.handleAddProcError = function (operation) {\n var _this = this;\n /**\n * If the tested error is a `BackgroundManagerNotOpenError`, it will be captured\n * and replaced with a friendlier message that instructs the App Developer.\n *\n * @param err An error to test.\n */\n var handler = function (err) {\n if (err.message.startsWith('BackgroundManagerNotOpenError')) {\n throw new Error([\n \"DataStoreStateError: Tried to execute `\" + operation + \"` while DataStore was \\\"\" + _this.state + \"\\\".\",\n \"This can only be done while DataStore is \\\"Started\\\" or \\\"Stopped\\\". To remedy:\",\n 'Ensure all calls to `stop()` and `clear()` have completed first.',\n 'If this is not possible, retry the operation until it succeeds.',\n ].join('\\n'));\n }\n else {\n throw err;\n }\n };\n return handler;\n };\n /**\n * Clears all data from storage and removes all data, schema info, other\n * initialization details, and then stops DataStore.\n *\n * That said, reinitialization is required after clearing. This can be done\n * by explicitiliy calling `start()` or any method that implicitly starts\n * DataStore, such as `query()`, `save()`, or `delete()`.\n */\n DataStore.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n checkSchemaInitialized();\n this.state = DataStoreState.Clearing;\n return [4 /*yield*/, this.runningProcesses.close()];\n case 1:\n _a.sent();\n if (!(this.storage === undefined)) return [3 /*break*/, 3];\n // connect to storage so that it can be cleared without fully starting DataStore\n this.storage = new Storage(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, this.storageAdapter, this.sessionId);\n return [4 /*yield*/, this.storage.init()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n if (syncSubscription && !syncSubscription.closed) {\n syncSubscription.unsubscribe();\n }\n if (!this.sync) return [3 /*break*/, 5];\n return [4 /*yield*/, this.sync.stop()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, this.storage.clear()];\n case 6:\n _a.sent();\n this.initialized = undefined; // Should re-initialize when start() is called.\n this.storage = undefined;\n this.sync = undefined;\n this.syncPredicates = new WeakMap();\n return [4 /*yield*/, this.runningProcesses.open()];\n case 7:\n _a.sent();\n this.state = DataStoreState.NotRunning;\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Stops all DataStore sync activities.\n *\n * TODO: \"Waits for graceful termination of\n * running queries and terminates subscriptions.\"\n */\n DataStore.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.state = DataStoreState.Stopping;\n return [4 /*yield*/, this.runningProcesses.close()];\n case 1:\n _a.sent();\n if (syncSubscription && !syncSubscription.closed) {\n syncSubscription.unsubscribe();\n }\n if (!this.sync) return [3 /*break*/, 3];\n return [4 /*yield*/, this.sync.stop()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n this.initialized = undefined; // Should re-initialize when start() is called.\n this.sync = undefined;\n return [4 /*yield*/, this.runningProcesses.open()];\n case 4:\n _a.sent();\n this.state = DataStoreState.NotRunning;\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Validates given pagination input from a query and creates a pagination\n * argument for use against the storage layer.\n *\n * @param modelDefinition\n * @param paginationProducer\n */\n DataStore.prototype.processPagination = function (modelDefinition, paginationProducer) {\n var sortPredicate;\n var _a = paginationProducer || {}, limit = _a.limit, page = _a.page, sort = _a.sort;\n if (limit === undefined && page === undefined && sort === undefined) {\n return undefined;\n }\n if (page !== undefined && limit === undefined) {\n throw new Error('Limit is required when requesting a page');\n }\n if (page !== undefined) {\n if (typeof page !== 'number') {\n throw new Error('Page should be a number');\n }\n if (page < 0) {\n throw new Error(\"Page can't be negative\");\n }\n }\n if (limit !== undefined) {\n if (typeof limit !== 'number') {\n throw new Error('Limit should be a number');\n }\n if (limit < 0) {\n throw new Error(\"Limit can't be negative\");\n }\n }\n if (sort) {\n sortPredicate = ModelSortPredicateCreator.createFromExisting(modelDefinition, sort);\n }\n return {\n limit: limit,\n page: page,\n sort: sortPredicate,\n };\n };\n /**\n * Examines the configured `syncExpressions` and produces a WeakMap of\n * SchemaModel -> predicate to use during sync.\n */\n DataStore.prototype.processSyncExpressions = function () {\n return __awaiter(this, void 0, void 0, function () {\n var syncPredicates;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.syncExpressions || !this.syncExpressions.length) {\n return [2 /*return*/, new WeakMap()];\n }\n return [4 /*yield*/, Promise.all(this.syncExpressions.map(function (syncExpression) { return __awaiter(_this, void 0, void 0, function () {\n var _a, modelConstructor, conditionProducer, modelDefinition, condition, predicate;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, syncExpression];\n case 1:\n _a = _b.sent(), modelConstructor = _a.modelConstructor, conditionProducer = _a.conditionProducer;\n modelDefinition = getModelDefinition(modelConstructor);\n return [4 /*yield*/, this.unwrapPromise(conditionProducer)];\n case 2:\n condition = _b.sent();\n if (isPredicatesAll(condition)) {\n return [2 /*return*/, [modelDefinition, null]];\n }\n predicate = internals(condition(predicateFor({\n builder: modelConstructor,\n schema: modelDefinition,\n pkField: extractPrimaryKeyFieldNames(modelDefinition),\n }))).toStoragePredicate();\n return [2 /*return*/, [modelDefinition, predicate]];\n }\n });\n }); }))];\n case 1:\n syncPredicates = _a.sent();\n return [2 /*return*/, this.weakMapFromEntries(syncPredicates)];\n }\n });\n });\n };\n DataStore.prototype.unwrapPromise = function (conditionProducer) {\n return __awaiter(this, void 0, void 0, function () {\n var condition, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, conditionProducer()];\n case 1:\n condition = _a.sent();\n return [2 /*return*/, condition || conditionProducer];\n case 2:\n error_1 = _a.sent();\n if (error_1 instanceof TypeError) {\n return [2 /*return*/, conditionProducer];\n }\n throw error_1;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n DataStore.prototype.weakMapFromEntries = function (entries) {\n return entries.reduce(function (map, _a) {\n var _b = __read(_a, 2), modelDefinition = _b[0], predicate = _b[1];\n if (map.has(modelDefinition)) {\n var name_2 = modelDefinition.name;\n logger.warn(\"You can only utilize one Sync Expression per model.\\n Subsequent sync expressions for the \" + name_2 + \" model will be ignored.\");\n return map;\n }\n if (predicate) {\n map.set(modelDefinition, predicate);\n }\n return map;\n }, new WeakMap());\n };\n /**\n * A session ID to allow CMS to open databases against multiple apps.\n * This session ID is only expected be set by AWS Amplify Studio.\n */\n DataStore.prototype.retrieveSessionId = function () {\n try {\n var sessionId = sessionStorage.getItem('datastoreSessionId');\n if (sessionId) {\n var aws_appsync_graphqlEndpoint = this.amplifyConfig.aws_appsync_graphqlEndpoint;\n var appSyncUrl = aws_appsync_graphqlEndpoint.split('/')[2];\n var _a = __read(appSyncUrl.split('.'), 1), appSyncId = _a[0];\n return sessionId + \"-\" + appSyncId;\n }\n }\n catch (_b) { }\n return undefined;\n };\n return DataStore;\n}());\nvar instance = new DataStore();\nAmplify.register(instance);\nexport { DataStore as DataStoreClass, initSchema, instance as DataStore };\n//# sourceMappingURL=datastore.js.map","import { __extends } from \"tslib\";\nimport { Amplify, } from '@aws-amplify/core';\nimport { InternalPubSubClass } from './internals';\nvar PubSubClass = /** @class */ (function (_super) {\n __extends(PubSubClass, _super);\n function PubSubClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PubSubClass.prototype.getModuleName = function () {\n return 'PubSub';\n };\n PubSubClass.prototype.subscribe = function (topics, options) {\n return _super.prototype.subscribe.call(this, topics, options);\n };\n return PubSubClass;\n}(InternalPubSubClass));\nexport { PubSubClass };\nexport var PubSub = new PubSubClass();\nAmplify.register(PubSub);\n//# sourceMappingURL=PubSub.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign } from \"tslib\";\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('AbstractInteractionsProvider');\nvar AbstractInteractionsProvider = /** @class */ (function () {\n function AbstractInteractionsProvider(options) {\n if (options === void 0) { options = {}; }\n this._config = options;\n }\n AbstractInteractionsProvider.prototype.configure = function (config) {\n if (config === void 0) { config = {}; }\n this._config = __assign(__assign({}, this._config), config);\n logger.debug(\"configure \" + this.getProviderName(), this._config);\n return this.options;\n };\n AbstractInteractionsProvider.prototype.getCategory = function () {\n return 'Interactions';\n };\n Object.defineProperty(AbstractInteractionsProvider.prototype, \"options\", {\n get: function () {\n return __assign({}, this._config);\n },\n enumerable: true,\n configurable: true\n });\n return AbstractInteractionsProvider;\n}());\nexport { AbstractInteractionsProvider };\n//# sourceMappingURL=InteractionsProvider.js.map","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport var booleanSelector = function (obj, key, type) {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(\"Cannot load \".concat(type, \" \\\"\").concat(key, \"\\\". Expected \\\"true\\\" or \\\"false\\\", got \").concat(obj[key], \".\"));\n};\n","export var normalizeProvider = function (input) {\n if (typeof input === \"function\")\n return input;\n var promisified = Promise.resolve(input);\n return function () { return promisified; };\n};\n","import { __assign } from \"tslib\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { getEndpointFromRegion } from \"./utils/getEndpointFromRegion\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n var useDualstackEndpoint = normalizeProvider(input.useDualstackEndpoint);\n var endpoint = input.endpoint, useFipsEndpoint = input.useFipsEndpoint, urlParser = input.urlParser;\n return __assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: endpoint\n ? normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : function () { return getEndpointFromRegion(__assign(__assign({}, input), { useDualstackEndpoint: useDualstackEndpoint, useFipsEndpoint: useFipsEndpoint })); }, isCustomEndpoint: !!endpoint, useDualstackEndpoint: useDualstackEndpoint });\n};\n","import { __awaiter, __generator } from \"tslib\";\nexport var getEndpointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, useDualstackEndpoint, useFipsEndpoint, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4, input.useDualstackEndpoint()];\n case 2:\n useDualstackEndpoint = _c.sent();\n return [4, input.useFipsEndpoint()];\n case 3:\n useFipsEndpoint = _c.sent();\n return [4, input.regionInfoProvider(region, { useDualstackEndpoint: useDualstackEndpoint, useFipsEndpoint: useFipsEndpoint })];\n case 4:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2, input.urlParser(\"\".concat(tls ? \"https:\" : \"http:\", \"//\").concat(hostname))];\n }\n });\n}); };\n","export var isFipsRegion = function (region) {\n return typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n};\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport var getRealRegion = function (region) {\n return isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n};\n","export var getHostnameFromVariants = function (variants, _a) {\n var _b;\n if (variants === void 0) { variants = []; }\n var useFipsEndpoint = _a.useFipsEndpoint, useDualstackEndpoint = _a.useDualstackEndpoint;\n return (_b = variants.find(function (_a) {\n var tags = _a.tags;\n return useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\");\n })) === null || _b === void 0 ? void 0 : _b.hostname;\n};\n","import { __assign } from \"tslib\";\nimport { getHostnameFromVariants } from \"./getHostnameFromVariants\";\nimport { getResolvedHostname } from \"./getResolvedHostname\";\nimport { getResolvedPartition } from \"./getResolvedPartition\";\nimport { getResolvedSigningRegion } from \"./getResolvedSigningRegion\";\nexport var getRegionInfo = function (region, _a) {\n var _b, _c, _d, _e, _f, _g;\n var _h = _a.useFipsEndpoint, useFipsEndpoint = _h === void 0 ? false : _h, _j = _a.useDualstackEndpoint, useDualstackEndpoint = _j === void 0 ? false : _j, signingService = _a.signingService, regionHash = _a.regionHash, partitionHash = _a.partitionHash;\n var partition = getResolvedPartition(region, { partitionHash: partitionHash });\n var resolvedRegion = region in regionHash ? region : (_c = (_b = partitionHash[partition]) === null || _b === void 0 ? void 0 : _b.endpoint) !== null && _c !== void 0 ? _c : region;\n var hostnameOptions = { useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint };\n var regionHostname = getHostnameFromVariants((_d = regionHash[resolvedRegion]) === null || _d === void 0 ? void 0 : _d.variants, hostnameOptions);\n var partitionHostname = getHostnameFromVariants((_e = partitionHash[partition]) === null || _e === void 0 ? void 0 : _e.variants, hostnameOptions);\n var hostname = getResolvedHostname(resolvedRegion, { regionHostname: regionHostname, partitionHostname: partitionHostname });\n if (hostname === undefined) {\n throw new Error(\"Endpoint resolution failed for: \".concat({ resolvedRegion: resolvedRegion, useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint }));\n }\n var signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: (_f = regionHash[resolvedRegion]) === null || _f === void 0 ? void 0 : _f.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint: useFipsEndpoint,\n });\n return __assign(__assign({ partition: partition, signingService: signingService, hostname: hostname }, (signingRegion && { signingRegion: signingRegion })), (((_g = regionHash[resolvedRegion]) === null || _g === void 0 ? void 0 : _g.signingService) && {\n signingService: regionHash[resolvedRegion].signingService,\n }));\n};\n","export var getResolvedPartition = function (region, _a) {\n var _b;\n var partitionHash = _a.partitionHash;\n return (_b = Object.keys(partitionHash || {}).find(function (key) { return partitionHash[key].regions.includes(region); })) !== null && _b !== void 0 ? _b : \"aws\";\n};\n","export var getResolvedHostname = function (resolvedRegion, _a) {\n var regionHostname = _a.regionHostname, partitionHostname = _a.partitionHostname;\n return regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n};\n","export var getResolvedSigningRegion = function (hostname, _a) {\n var signingRegion = _a.signingRegion, regionRegex = _a.regionRegex, useFipsEndpoint = _a.useFipsEndpoint;\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n var regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n var regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n","import { __assign, __read, __spreadArray } from \"tslib\";\nvar HttpRequest = (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? \"\".concat(options.protocol, \":\")\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\".concat(options.path) : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param), false) : param, _a));\n }, {});\n}\n","var HttpResponse = (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) {\n return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length_1;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n length_1 = bodyLengthChecker(body);\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length_1), _a));\n }\n catch (error) {\n }\n }\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n });\n }); };\n };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) {\n return function (next) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2, next(args)];\n });\n }); };\n };\n};\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport var DEFAULT_MAX_ATTEMPTS = 3;\nexport var DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2, response];\n }\n });\n }); };\n };\n};\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport var recursionDetectionMiddleware = function (options) {\n return function (next) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, functionName, traceId, nonEmptyString;\n return __generator(this, function (_a) {\n request = args.request;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return [2, next(args)];\n }\n functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n traceId = process.env[ENV_TRACE_ID];\n nonEmptyString = function (str) { return typeof str === \"string\" && str.length > 0; };\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n });\n }); };\n };\n};\nexport var addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport var getRecursionDetectionPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n}); };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport var NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes((error === null || error === void 0 ? void 0 : error.code) || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nvar DefaultRateLimiter = (function () {\n function DefaultRateLimiter(options) {\n var _a, _b, _c, _d, _e;\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (_a = options === null || options === void 0 ? void 0 : options.beta) !== null && _a !== void 0 ? _a : 0.7;\n this.minCapacity = (_b = options === null || options === void 0 ? void 0 : options.minCapacity) !== null && _b !== void 0 ? _b : 1;\n this.minFillRate = (_c = options === null || options === void 0 ? void 0 : options.minFillRate) !== null && _c !== void 0 ? _c : 0.5;\n this.scaleConstant = (_d = options === null || options === void 0 ? void 0 : options.scaleConstant) !== null && _d !== void 0 ? _d : 0.4;\n this.smooth = (_e = options === null || options === void 0 ? void 0 : options.smooth) !== null && _e !== void 0 ? _e : 0.8;\n var currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n DefaultRateLimiter.prototype.getCurrentTimeInSeconds = function () {\n return Date.now() / 1000;\n };\n DefaultRateLimiter.prototype.getSendToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, this.acquireTokenBucket(1)];\n });\n });\n };\n DefaultRateLimiter.prototype.acquireTokenBucket = function (amount) {\n return __awaiter(this, void 0, void 0, function () {\n var delay_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.enabled) {\n return [2];\n }\n this.refillTokenBucket();\n if (!(amount > this.currentCapacity)) return [3, 2];\n delay_1 = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n return [4, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.currentCapacity = this.currentCapacity - amount;\n return [2];\n }\n });\n });\n };\n DefaultRateLimiter.prototype.refillTokenBucket = function () {\n var timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n var fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n };\n DefaultRateLimiter.prototype.updateClientSendingRate = function (response) {\n var calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n var rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n var newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n };\n DefaultRateLimiter.prototype.calculateTimeWindow = function () {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n };\n DefaultRateLimiter.prototype.cubicThrottle = function (rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n };\n DefaultRateLimiter.prototype.cubicSuccess = function (timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n };\n DefaultRateLimiter.prototype.enableTokenBucket = function () {\n this.enabled = true;\n };\n DefaultRateLimiter.prototype.updateTokenBucketRate = function (newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n };\n DefaultRateLimiter.prototype.updateMeasuredRate = function () {\n var t = this.getCurrentTimeInSeconds();\n var timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n var currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n };\n DefaultRateLimiter.prototype.getPrecise = function (num) {\n return parseFloat(num.toFixed(8));\n };\n return DefaultRateLimiter;\n}());\nexport { DefaultRateLimiter };\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n","export var DEFAULT_RETRY_DELAY_BASE = 100;\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\nexport var INITIAL_RETRY_TOKENS = 500;\nexport var RETRY_COST = 5;\nexport var TIMEOUT_RETRY_COST = 10;\nexport var NO_RETRY_INCREMENT = 1;\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\nvar StandardRetryStrategy = (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.STANDARD;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3, 3];\n case 3: return [2, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args, options) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _b, response, output, e_1, err, delayFromDecider, delayFromResponse, delay_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 4, , 7]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\".concat(attempts + 1, \"; max=\").concat(maxAttempts);\n }\n if (!(options === null || options === void 0 ? void 0 : options.beforeRequest)) return [3, 2];\n return [4, options.beforeRequest()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2: return [4, next(args)];\n case 3:\n _b = _c.sent(), response = _b.response, output = _b.output;\n if (options === null || options === void 0 ? void 0 : options.afterRequest) {\n options.afterRequest(response);\n }\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2, { value: { response: response, output: output } }];\n case 4:\n e_1 = _c.sent();\n err = asSdkError(e_1);\n attempts++;\n if (!this_1.shouldRetry(err, attempts, maxAttempts)) return [3, 6];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err);\n delayFromDecider = this_1.delayDecider(isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n delay_1 = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay_1;\n return [4, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 5:\n _c.sent();\n return [2, \"continue\"];\n case 6:\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n case 7: return [2];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3, 4];\n return [5, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2, state_1.value];\n return [3, 2];\n case 4: return [2];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\nvar getDelayFromRetryAfterHeader = function (response) {\n if (!HttpResponse.isInstance(response))\n return;\n var retryAfterHeaderName = Object.keys(response.headers).find(function (key) { return key.toLowerCase() === \"retry-after\"; });\n if (!retryAfterHeaderName)\n return;\n var retryAfter = response.headers[retryAfterHeaderName];\n var retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n var retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\nvar asSdkError = function (error) {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(\"AWS SDK error wrapper for \".concat(error));\n};\n","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens, options) {\n var _a, _b, _c;\n var MAX_CAPACITY = initialRetryTokens;\n var noRetryIncrement = (_a = options === null || options === void 0 ? void 0 : options.noRetryIncrement) !== null && _a !== void 0 ? _a : NO_RETRY_INCREMENT;\n var retryCost = (_b = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _b !== void 0 ? _b : RETRY_COST;\n var timeoutRetryCost = (_c = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _c !== void 0 ? _c : TIMEOUT_RETRY_COST;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n","import { __awaiter, __extends, __generator, __rest } from \"tslib\";\nimport { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nvar AdaptiveRetryStrategy = (function (_super) {\n __extends(AdaptiveRetryStrategy, _super);\n function AdaptiveRetryStrategy(maxAttemptsProvider, options) {\n var _this = this;\n var _a = options !== null && options !== void 0 ? options : {}, rateLimiter = _a.rateLimiter, superOptions = __rest(_a, [\"rateLimiter\"]);\n _this = _super.call(this, maxAttemptsProvider, superOptions) || this;\n _this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new DefaultRateLimiter();\n _this.mode = RETRY_MODES.ADAPTIVE;\n return _this;\n }\n AdaptiveRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2, _super.prototype.retry.call(this, next, args, {\n beforeRequest: function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, this.rateLimiter.getSendToken()];\n });\n }); },\n afterRequest: function (response) {\n _this.rateLimiter.updateClientSendingRate(response);\n },\n })];\n });\n });\n };\n return AdaptiveRetryStrategy;\n}(StandardRetryStrategy));\nexport { AdaptiveRetryStrategy };\n","import { __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nexport var retryMiddleware = function (options) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var retryStrategy;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, options.retryStrategy()];\n case 1:\n retryStrategy = _a.sent();\n if (retryStrategy === null || retryStrategy === void 0 ? void 0 : retryStrategy.mode)\n context.userAgent = __spreadArray(__spreadArray([], __read((context.userAgent || [])), false), [[\"cfg/retry-mode\", retryStrategy.mode]], false);\n return [2, retryStrategy.retry(next, args)];\n }\n });\n }); };\n };\n};\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n","import { __extends } from \"tslib\";\nvar ProviderError = (function (_super) {\n __extends(ProviderError, _super);\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message) || this;\n _this.tryNextLink = tryNextLink;\n _this.name = \"ProviderError\";\n Object.setPrototypeOf(_this, ProviderError.prototype);\n return _this;\n }\n ProviderError.from = function (error, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n return Object.assign(new this(error.message, tryNextLink), error);\n };\n return ProviderError;\n}(Error));\nexport { ProviderError };\n","import { __extends } from \"tslib\";\nimport { ProviderError } from \"./ProviderError\";\nvar CredentialsProviderError = (function (_super) {\n __extends(CredentialsProviderError, _super);\n function CredentialsProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message, tryNextLink) || this;\n _this.tryNextLink = tryNextLink;\n _this.name = \"CredentialsProviderError\";\n Object.setPrototypeOf(_this, CredentialsProviderError.prototype);\n return _this;\n }\n return CredentialsProviderError;\n}(ProviderError));\nexport { CredentialsProviderError };\n","import { __extends } from \"tslib\";\nimport { ProviderError } from \"./ProviderError\";\nvar TokenProviderError = (function (_super) {\n __extends(TokenProviderError, _super);\n function TokenProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message, tryNextLink) || this;\n _this.tryNextLink = tryNextLink;\n _this.name = \"TokenProviderError\";\n Object.setPrototypeOf(_this, TokenProviderError.prototype);\n return _this;\n }\n return TokenProviderError;\n}(ProviderError));\nexport { TokenProviderError };\n","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\".concat(encodedByte);\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \".concat(encodedByte, \" as hexadecimal\"));\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","import { __awaiter, __generator } from \"tslib\";\nexport var memoize = function (provider, isExpired, requiresRefresh) {\n var resolved;\n var pending;\n var hasResult;\n var isConstant = false;\n var coalesceProvider = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!pending) {\n pending = provider();\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 3, 4]);\n return [4, pending];\n case 2:\n resolved = _a.sent();\n hasResult = true;\n isConstant = false;\n return [3, 4];\n case 3:\n pending = undefined;\n return [7];\n case 4: return [2, resolved];\n }\n });\n }); };\n if (isExpired === undefined) {\n return function (options) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh))) return [3, 2];\n return [4, coalesceProvider()];\n case 1:\n resolved = _a.sent();\n _a.label = 2;\n case 2: return [2, resolved];\n }\n });\n }); };\n }\n return function (options) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh))) return [3, 2];\n return [4, coalesceProvider()];\n case 1:\n resolved = _a.sent();\n _a.label = 2;\n case 2:\n if (isConstant) {\n return [2, resolved];\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return [2, resolved];\n }\n if (!isExpired(resolved)) return [3, 4];\n return [4, coalesceProvider()];\n case 3:\n _a.sent();\n return [2, resolved];\n case 4: return [2, resolved];\n }\n });\n }); };\n};\n","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\nexport var createScope = function (shortDate, region, service) {\n return \"\".concat(shortDate, \"/\").concat(region, \"/\").concat(service, \"/\").concat(KEY_TYPE_IDENTIFIER);\n};\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = \"\".concat(shortDate, \":\").concat(region, \":\").concat(service, \":\").concat(toHex(credsHash), \":\").concat(credentials.sessionToken);\n if (cacheKey in signingKeyCache) {\n return [2, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\".concat(credentials.secretAccessKey);\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3, 6];\n signable = _b.value;\n return [4, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3, 3];\n case 6: return [3, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7];\n case 9: return [2, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\nexport var clearCredentialCache = function () {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n};\nvar hmac = function (ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n};\n","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport var getCanonicalHeaders = function (_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n if (headers[headerName] == undefined) {\n continue;\n }\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n};\n","export var escapeUri = function (uri) {\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\".concat(c.charCodeAt(0).toString(16).toUpperCase()); };\n","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport var getPayloadHash = function (_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(void 0, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3, 1];\n return [2, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4, hashCtor.digest()];\n case 2: return [2, _d.apply(void 0, [_f.sent()])];\n case 3: return [2, UNSIGNED_PAYLOAD];\n }\n });\n });\n};\n","export var isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};\n","import { __assign, __read, __rest, __spreadArray } from \"tslib\";\nexport var cloneRequest = function (_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return (__assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined }));\n};\nexport var cloneQuery = function (query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spreadArray([], __read(param), false) : param, _a));\n }, {});\n};\n","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport var prepareRequest = function (request) {\n var e_1, _a;\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n};\n","export var iso8601 = function (time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n};\nexport var toDate = function (time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeProvider(region);\n this.credentialProvider = normalizeProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n this.validateResolvedCredentials(credentials);\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3, 2];\n _c = signingRegion;\n return [3, 4];\n case 2: return [4, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = \"\".concat(credentials.accessKeyId, \"/\").concat(scope);\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2, this.signEvent(toSign, options)];\n }\n else {\n return [2, this.signRequest(toSign, options)];\n }\n return [2];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3, 1];\n _d = signingRegion;\n return [3, 3];\n case 1: return [4, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n this.validateResolvedCredentials(credentials);\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3, 2];\n _d = signingRegion;\n return [3, 4];\n case 2: return [4, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4, hash.digest()];\n case 6: return [2, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n this.validateResolvedCredentials(credentials);\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3, 2];\n _d = signingRegion;\n return [3, 4];\n case 2: return [4, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n \"\".concat(ALGORITHM_IDENTIFIER, \" \") +\n \"Credential=\".concat(credentials.accessKeyId, \"/\").concat(scope, \", \") +\n \"SignedHeaders=\".concat(getCanonicalHeaderList(canonicalHeaders), \", \") +\n \"Signature=\".concat(signature);\n return [2, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return \"\".concat(request.method, \"\\n\").concat(this.getCanonicalPath(request), \"\\n\").concat(getCanonicalQuery(request), \"\\n\").concat(sortedHeaders.map(function (name) { return \"\".concat(name, \":\").concat(canonicalHeaders[name]); }).join(\"\\n\"), \"\\n\\n\").concat(sortedHeaders.join(\";\"), \"\\n\").concat(payloadHash);\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2, \"\".concat(ALGORITHM_IDENTIFIER, \"\\n\").concat(longDate, \"\\n\").concat(credentialScope, \"\\n\").concat(toHex(hashedRequest))];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var e_1, _b;\n var path = _a.path;\n if (this.uriEscapePath) {\n var normalizedPathSegments = [];\n try {\n for (var _c = __values(path.split(\"/\")), _d = _c.next(); !_d.done; _d = _c.next()) {\n var pathSegment = _d.value;\n if ((pathSegment === null || pathSegment === void 0 ? void 0 : pathSegment.length) === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var normalizedPath = \"\".concat((path === null || path === void 0 ? void 0 : path.startsWith(\"/\")) ? \"/\" : \"\").concat(normalizedPathSegments.join(\"/\")).concat(normalizedPathSegments.length > 0 && (path === null || path === void 0 ? void 0 : path.endsWith(\"/\")) ? \"/\" : \"\");\n var doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4, hash.digest()];\n case 3: return [2, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n SignatureV4.prototype.validateResolvedCredentials = function (credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\n","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nexport var moveHeadersToQuery = function (request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name_1 = _f.value;\n var lname = name_1.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name_1] = headers[name_1];\n delete headers[name_1];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers, query: query });\n};\n","import { __values } from \"tslib\";\nexport var hasHeader = function (soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n};\nexport var getHeaderValue = function (soughtHeader, headers) {\n var e_2, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return undefined;\n};\nexport var deleteHeader = function (soughtHeader, headers) {\n var e_3, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n};\n","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport var getCanonicalQuery = function (_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = \"\".concat(escapeUri(key), \"=\").concat(escapeUri(value));\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([\"\".concat(escapeUri(key), \"=\").concat(escapeUri(value))]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; })\n .join(\"&\");\n};\n","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { memoize } from \"@aws-sdk/property-provider\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nvar CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport var resolveAwsAuthConfig = function (input) {\n var normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = (_a = input).regionInfoProvider;\n _c = [region];\n _d = {};\n return [4, input.useFipsEndpoint()];\n case 1:\n _d.useFipsEndpoint = _e.sent();\n return [4, input.useDualstackEndpoint()];\n case 2: return [4, _b.apply(_a, _c.concat([(_d.useDualstackEndpoint = _e.sent(),\n _d)]))];\n case 3: return [2, [\n (_e.sent()) || {},\n region\n ]];\n }\n });\n }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n var params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });\n var SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n };\n }\n else {\n signer = function (authScheme) { return __awaiter(void 0, void 0, void 0, function () {\n var signingRegion, signingService, params, SignerCtor;\n return __generator(this, function (_a) {\n if (!authScheme) {\n throw new Error(\"Unexpected empty auth scheme config\");\n }\n signingRegion = authScheme.signingScope;\n signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });\n SignerCtor = input.signerConstructor || SignatureV4;\n return [2, new SignerCtor(params)];\n });\n }); };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n};\nexport var resolveSigV4AuthConfig = function (input) {\n var normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n};\nvar normalizeCredentialProvider = function (credentials) {\n if (typeof credentials === \"function\") {\n return memoize(credentials, function (credentials) {\n return credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW;\n }, function (credentials) { return credentials.expiration !== undefined; });\n }\n return normalizeProvider(credentials);\n};\n","export var getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport var getUpdatedSystemClockOffset = function (clockTime, currentSystemClockOffset) {\n var clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport var isClockSkewed = function (clockTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { getSkewCorrectedDate } from \"./utils/getSkewCorrectedDate\";\nimport { getUpdatedSystemClockOffset } from \"./utils/getUpdatedSystemClockOffset\";\nexport var awsAuthMiddleware = function (options) {\n return function (next, context) {\n return function (args) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var authScheme, signer, output, _d, _e, dateHeader;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request))\n return [2, next(args)];\n authScheme = (_c = (_b = (_a = (context.endpointV2)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];\n return [4, options.signer(authScheme)];\n case 1:\n signer = _g.sent();\n _d = next;\n _e = [__assign({}, args)];\n _f = {};\n return [4, signer.sign(args.request, {\n signingDate: getSkewCorrectedDate(options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n })];\n case 2: return [4, _d.apply(void 0, [__assign.apply(void 0, _e.concat([(_f.request = _g.sent(), _f)]))]).catch(function (error) {\n var _a;\n var serverTime = (_a = error.ServerTime) !== null && _a !== void 0 ? _a : getDateHeader(error.$response);\n if (serverTime) {\n options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);\n }\n throw error;\n })];\n case 3:\n output = _g.sent();\n dateHeader = getDateHeader(output.response);\n if (dateHeader) {\n options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);\n }\n return [2, output];\n }\n });\n });\n };\n };\n};\nvar getDateHeader = function (response) { var _a, _b, _c; return HttpResponse.isInstance(response) ? (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : (_c = response.headers) === null || _c === void 0 ? void 0 : _c.Date : undefined; };\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport var getAwsAuthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n}); };\nexport var getSigV4AuthPlugin = getAwsAuthPlugin;\n","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\nexport var userAgentMiddleware = function (options) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, sdkUserAgentValue, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n sdkUserAgentValue = __spreadArray(__spreadArray(__spreadArray([], __read(defaultUserAgent), false), __read(userAgent), false), __read(customUserAgent), false).join(SPACE);\n normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); })), false), __read(customUserAgent), false).join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? \"\".concat(headers[USER_AGENT], \" \").concat(normalUAValue)\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n }); };\n };\n};\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex);\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n","import { __assign, __read, __spreadArray, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry)), false));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spreadArray([], __read(expandRelativeMiddlewareList(entry)), false));\n }\n });\n return expandedMiddlewareList;\n };\n var getMiddlewareList = function (debug) {\n if (debug === void 0) { debug = false; }\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(\"\".concat(entry.toMiddleware, \" is not found when adding \").concat(entry.name || \"anonymous\", \" middleware \").concat(entry.relation, \" \").concat(entry.toMiddleware));\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n wholeList.push.apply(wholeList, __spreadArray([], __read(expendedMiddlewareList), false));\n return wholeList;\n }, []);\n return mainChain;\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\".concat(name, \"'\"));\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\".concat(name, \"\\\" middleware with \").concat(toOverride.priority, \" priority in \").concat(toOverride.step, \" step cannot be \") +\n \"overridden by same-name middleware with \".concat(entry.priority, \" priority in \").concat(entry.step, \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\".concat(name, \"'\"));\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\".concat(name, \"\\\" middleware \").concat(toOverride.relation, \" \\\"\").concat(toOverride.toMiddleware, \"\\\" middleware cannot be overridden \") +\n \"by same-name middleware \".concat(entry.relation, \" \\\"\").concat(entry.toMiddleware, \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: function () {\n return getMiddlewareList(true).map(function (mw) {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList()\n .map(function (entry) { return entry.middleware; })\n .reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n","import { __read } from \"tslib\";\nexport var parseBoolean = function (value) {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(\"Unable to parse boolean value \\\"\".concat(value, \"\\\"\"));\n }\n};\nexport var expectBoolean = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(\"Expected boolean, got \".concat(typeof value, \": \").concat(value)));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n var lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(\"Expected boolean, got \".concat(typeof value, \": \").concat(value)));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(\"Expected boolean, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectNumber = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n var parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(\"Expected number but observed string: \".concat(value)));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(\"Expected number, got \".concat(typeof value, \": \").concat(value));\n};\nvar MAX_FLOAT = Math.ceil(Math.pow(2, 127) * (2 - Math.pow(2, -23)));\nexport var expectFloat32 = function (value) {\n var expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(\"Expected 32-bit float, got \".concat(value));\n }\n }\n return expected;\n};\nexport var expectLong = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(\"Expected integer, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectInt = expectLong;\nexport var expectInt32 = function (value) { return expectSizedInt(value, 32); };\nexport var expectShort = function (value) { return expectSizedInt(value, 16); };\nexport var expectByte = function (value) { return expectSizedInt(value, 8); };\nvar expectSizedInt = function (value, size) {\n var expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(\"Expected \".concat(size, \"-bit integer, got \").concat(value));\n }\n return expected;\n};\nvar castInt = function (value, size) {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport var expectNonNull = function (value, location) {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(\"Expected a non-null value for \".concat(location));\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport var expectObject = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n var receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(\"Expected object, got \".concat(receivedType, \": \").concat(value));\n};\nexport var expectString = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(\"Expected string, got \".concat(typeof value, \": \").concat(value)));\n return String(value);\n }\n throw new TypeError(\"Expected string, got \".concat(typeof value, \": \").concat(value));\n};\nexport var expectUnion = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n var asObject = expectObject(value);\n var setKeys = Object.entries(asObject)\n .filter(function (_a) {\n var _b = __read(_a, 2), v = _b[1];\n return v != null;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k;\n });\n if (setKeys.length === 0) {\n throw new TypeError(\"Unions must have exactly one non-null member. None were found.\");\n }\n if (setKeys.length > 1) {\n throw new TypeError(\"Unions must have exactly one non-null member. Keys \".concat(setKeys, \" were not null.\"));\n }\n return asObject;\n};\nexport var strictParseDouble = function (value) {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport var strictParseFloat = strictParseDouble;\nexport var strictParseFloat32 = function (value) {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nvar NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nvar parseNumber = function (value) {\n var matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(\"Expected real number, got implicit NaN\");\n }\n return parseFloat(value);\n};\nexport var limitedParseDouble = function (value) {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport var handleFloat = limitedParseDouble;\nexport var limitedParseFloat = limitedParseDouble;\nexport var limitedParseFloat32 = function (value) {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nvar parseFloatString = function (value) {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(\"Unable to parse float value: \".concat(value));\n }\n};\nexport var strictParseLong = function (value) {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport var strictParseInt = strictParseLong;\nexport var strictParseInt32 = function (value) {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport var strictParseShort = function (value) {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport var strictParseByte = function (value) {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nvar stackTraceWarning = function (message) {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter(function (s) { return !s.includes(\"stackTraceWarning\"); })\n .join(\"\\n\");\n};\nexport var logger = {\n warn: console.warn,\n};\n","import { __read } from \"tslib\";\nimport { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nvar DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nvar MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n var year = date.getUTCFullYear();\n var month = date.getUTCMonth();\n var dayOfWeek = date.getUTCDay();\n var dayOfMonthInt = date.getUTCDate();\n var hoursInt = date.getUTCHours();\n var minutesInt = date.getUTCMinutes();\n var secondsInt = date.getUTCSeconds();\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\".concat(dayOfMonthInt) : \"\".concat(dayOfMonthInt);\n var hoursString = hoursInt < 10 ? \"0\".concat(hoursInt) : \"\".concat(hoursInt);\n var minutesString = minutesInt < 10 ? \"0\".concat(minutesInt) : \"\".concat(minutesInt);\n var secondsString = secondsInt < 10 ? \"0\".concat(secondsInt) : \"\".concat(secondsInt);\n return \"\".concat(DAYS[dayOfWeek], \", \").concat(dayOfMonthString, \" \").concat(MONTHS[month], \" \").concat(year, \" \").concat(hoursString, \":\").concat(minutesString, \":\").concat(secondsString, \" GMT\");\n}\nvar RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport var parseRfc3339DateTime = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n var match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n var _a = __read(match, 8), _ = _a[0], yearStr = _a[1], monthStr = _a[2], dayStr = _a[3], hours = _a[4], minutes = _a[5], seconds = _a[6], fractionalMilliseconds = _a[7];\n var year = strictParseShort(stripLeadingZeroes(yearStr));\n var month = parseDateValue(monthStr, \"month\", 1, 12);\n var day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n};\nvar IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nvar RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nvar ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport var parseRfc7231DateTime = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n var match = IMF_FIXDATE.exec(value);\n if (match) {\n var _a = __read(match, 8), _1 = _a[0], dayStr = _a[1], monthStr = _a[2], yearStr = _a[3], hours = _a[4], minutes = _a[5], seconds = _a[6], fractionalMilliseconds = _a[7];\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n var _b = __read(match, 8), _2 = _b[0], dayStr = _b[1], monthStr = _b[2], yearStr = _b[3], hours = _b[4], minutes = _b[5], seconds = _b[6], fractionalMilliseconds = _b[7];\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n fractionalMilliseconds: fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n var _c = __read(match, 8), _3 = _c[0], monthStr = _c[1], dayStr = _c[2], hours = _c[3], minutes = _c[4], seconds = _c[5], fractionalMilliseconds = _c[6], yearStr = _c[7];\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours: hours, minutes: minutes, seconds: seconds, fractionalMilliseconds: fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport var parseEpochTimestamp = function (value) {\n if (value === null || value === undefined) {\n return undefined;\n }\n var valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nvar buildDate = function (year, month, day, time) {\n var adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nvar parseTwoDigitYear = function (value) {\n var thisYear = new Date().getUTCFullYear();\n var valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nvar FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nvar adjustRfc850Year = function (input) {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nvar parseMonthByShortName = function (value) {\n var monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(\"Invalid month: \".concat(value));\n }\n return monthIdx + 1;\n};\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar validateDayOfMonth = function (year, month, day) {\n var maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(\"Invalid day for \".concat(MONTHS[month], \" in \").concat(year, \": \").concat(day));\n }\n};\nvar isLeapYear = function (year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nvar parseDateValue = function (value, type, lower, upper) {\n var dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(\"\".concat(type, \" must be between \").concat(lower, \" and \").concat(upper, \", inclusive\"));\n }\n return dateVal;\n};\nvar parseMilliseconds = function (value) {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nvar stripLeadingZeroes = function (value) {\n var idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","import { __extends, __read } from \"tslib\";\nvar ServiceException = (function (_super) {\n __extends(ServiceException, _super);\n function ServiceException(options) {\n var _this = _super.call(this, options.message) || this;\n Object.setPrototypeOf(_this, ServiceException.prototype);\n _this.name = options.name;\n _this.$fault = options.$fault;\n _this.$metadata = options.$metadata;\n return _this;\n }\n return ServiceException;\n}(Error));\nexport { ServiceException };\nexport var decorateServiceException = function (exception, additions) {\n if (additions === void 0) { additions = {}; }\n Object.entries(additions)\n .filter(function (_a) {\n var _b = __read(_a, 2), v = _b[1];\n return v !== undefined;\n })\n .forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n var message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport var throwDefaultError = function (_a) {\n var output = _a.output, parsedBody = _a.parsedBody, exceptionCtor = _a.exceptionCtor, errorCode = _a.errorCode;\n var $metadata = deserializeMetadata(output);\n var statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n var response = new exceptionCtor({\n name: parsedBody.code || parsedBody.Code || errorCode || statusCode || \"UnknowError\",\n $fault: \"client\",\n $metadata: $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n","export var loadConfigsForDefaultMode = function (mode) {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","import { __extends, __read, __spreadArray } from \"tslib\";\nexport var StringWrapper = function () {\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spreadArray([null], __read(arguments), false));\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n","import { __read, __values } from \"tslib\";\nexport function map(arg0, arg1, arg2) {\n var e_1, _a;\n var target;\n var filter;\n var instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n try {\n for (var _b = __values(Object.keys(instructions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n var _d = __read(instructions[key], 2), filter_1 = _d[0], value = _d[1];\n if (typeof value === \"function\") {\n var _value = void 0;\n var defaultFilterPassed = filter_1 === undefined && (_value = value()) != null;\n var customFilterPassed = (typeof filter_1 === \"function\" && !!filter_1(void 0)) || (typeof filter_1 !== \"function\" && !!filter_1);\n if (defaultFilterPassed) {\n target[key] = _value;\n }\n else if (customFilterPassed) {\n target[key] = value();\n }\n }\n else {\n var defaultFilterPassed = filter_1 === undefined && value != null;\n var customFilterPassed = (typeof filter_1 === \"function\" && !!filter_1(value)) || (typeof filter_1 !== \"function\" && !!filter_1);\n if (defaultFilterPassed || customFilterPassed) {\n target[key] = value;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return target;\n}\nexport var convertMap = function (target) {\n var e_2, _a;\n var output = {};\n try {\n for (var _b = __values(Object.entries(target || {})), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n output[k] = [, v];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return output;\n};\nvar mapWithFilter = function (target, filter, instructions) {\n return map(target, Object.entries(instructions).reduce(function (_instructions, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport var resolvedPath = function (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n if (input != null && input[memberName] !== undefined) {\n var labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map(function (segment) { return extendedEncodeURIComponent(segment); })\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(\"Invalid character \".concat(input[j], \" in base64 string.\"));\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","import { __awaiter, __generator, __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = (function () {\n function FetchHttpHandler(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then(function (opts) { return opts || {}; });\n }\n else {\n this.config = options !== null && options !== void 0 ? options : {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n FetchHttpHandler.prototype.destroy = function () {\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n return __awaiter(this, void 0, void 0, function () {\n var _c, requestTimeoutInMs, abortError, path, queryString, port, method, url, body, requestOptions, fetchRequest, raceOfPromises;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!!this.config) return [3, 2];\n _c = this;\n return [4, this.configProvider];\n case 1:\n _c.config = _d.sent();\n _d.label = 2;\n case 2:\n requestTimeoutInMs = this.config.requestTimeout;\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return [2, Promise.reject(abortError)];\n }\n path = request.path;\n if (request.query) {\n queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\".concat(queryString);\n }\n }\n port = request.port, method = request.method;\n url = \"\".concat(request.protocol, \"//\").concat(request.hostname).concat(port ? \":\".concat(port) : \"\").concat(path);\n body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n fetchRequest = new Request(url, requestOptions);\n raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return [2, Promise.race(raceOfPromises)];\n }\n });\n });\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(\"\".concat(key, \"=\").concat(escapeUri(value[i])));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\".concat(escapeUri(value));\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \".concat(timeoutInMs, \" ms\"));\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3, 3];\n return [4, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3, 1];\n case 3: return [2, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n reader.readAsDataURL(blob);\n });\n}\n","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n","export var calculateBodyLength = function (body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(\"Body Length computation failed for \".concat(body));\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = typeof window !== \"undefined\" && ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"os/\".concat(((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n [\"lang/js\"],\n [\"md/browser\", \"\".concat((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\", \"_\").concat((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n sections.push([\"api/\".concat(serviceId), clientVersion]);\n }\n return [2, sections];\n });\n }); };\n};\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n if (typeof url === 'string') {\n return parseUrl(new URL(url));\n }\n var _a = url, hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getRegionInfo } from \"@aws-sdk/config-resolver\";\nvar regionHash = {\n \"us-east-1\": {\n variants: [\n {\n hostname: \"runtime-fips.lex.us-east-1.amazonaws.com\",\n tags: [\"fips\"],\n },\n ],\n },\n \"us-gov-west-1\": {\n variants: [\n {\n hostname: \"runtime-fips.lex.us-gov-west-1.amazonaws.com\",\n tags: [\"fips\"],\n },\n ],\n },\n \"us-west-2\": {\n variants: [\n {\n hostname: \"runtime-fips.lex.us-west-2.amazonaws.com\",\n tags: [\"fips\"],\n },\n ],\n },\n};\nvar partitionHash = {\n aws: {\n regions: [\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-northeast-3\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ap-southeast-3\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-central-1\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-1-fips\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n \"us-west-2-fips\",\n ],\n regionRegex: \"^(us|eu|ap|sa|ca|me|af)\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"runtime.lex.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"runtime-fips.lex.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"runtime.lex-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"runtime.lex.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-cn\": {\n regions: [\"cn-north-1\", \"cn-northwest-1\"],\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"runtime.lex.{region}.amazonaws.com.cn\",\n tags: [],\n },\n {\n hostname: \"runtime.lex-fips.{region}.amazonaws.com.cn\",\n tags: [\"fips\"],\n },\n {\n hostname: \"runtime.lex-fips.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"runtime.lex.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-iso\": {\n regions: [\"us-iso-east-1\", \"us-iso-west-1\"],\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"runtime.lex.{region}.c2s.ic.gov\",\n tags: [],\n },\n {\n hostname: \"runtime.lex-fips.{region}.c2s.ic.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-iso-b\": {\n regions: [\"us-isob-east-1\"],\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"runtime.lex.{region}.sc2s.sgov.gov\",\n tags: [],\n },\n {\n hostname: \"runtime.lex-fips.{region}.sc2s.sgov.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-us-gov\": {\n regions: [\"us-gov-east-1\", \"us-gov-west-1\", \"us-gov-west-1-fips\"],\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"runtime.lex.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"runtime-fips.lex.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"runtime.lex-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"runtime.lex.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n};\nexport var defaultRegionInfoProvider = function (region, options) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, getRegionInfo(region, __assign(__assign({}, options), { signingService: \"lex\", regionHash: regionHash, partitionHash: partitionHash }))];\n });\n}); };\n","export var DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { __awaiter, __generator } from \"tslib\";\nimport { memoize } from \"@aws-sdk/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport var resolveDefaultsModeConfig = function (_a) {\n var _b = _a === void 0 ? {} : _a, defaultsMode = _b.defaultsMode;\n return memoize(function () { return __awaiter(void 0, void 0, void 0, function () {\n var mode, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof defaultsMode === \"function\")) return [3, 2];\n return [4, defaultsMode()];\n case 1:\n _a = _b.sent();\n return [3, 3];\n case 2:\n _a = defaultsMode;\n _b.label = 3;\n case 3:\n mode = _a;\n switch (mode === null || mode === void 0 ? void 0 : mode.toLowerCase()) {\n case \"auto\":\n return [2, Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\")];\n case \"mobile\":\n case \"in-region\":\n case \"cross-region\":\n case \"standard\":\n case \"legacy\":\n return [2, Promise.resolve(mode === null || mode === void 0 ? void 0 : mode.toLocaleLowerCase())];\n case undefined:\n return [2, Promise.resolve(\"legacy\")];\n default:\n throw new Error(\"Invalid parameter for \\\"defaultsMode\\\", expect \".concat(DEFAULTS_MODE_OPTIONS.join(\", \"), \", got \").concat(mode));\n }\n return [2];\n }\n });\n }); });\n};\nvar isMobileBrowser = function () {\n var _a, _b;\n var parsedUA = typeof window !== \"undefined\" && ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n var platform = (_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.platform) === null || _b === void 0 ? void 0 : _b.type;\n return platform === \"tablet\" || platform === \"mobile\";\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport packageInfo from \"../package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@aws-sdk/config-resolver\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@aws-sdk/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@aws-sdk/util-defaults-mode-browser\";\nexport var getRuntimeConfig = function (config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n var defaultsMode = resolveDefaultsModeConfig(config);\n var defaultConfigProvider = function () { return defaultsMode().then(loadConfigsForDefaultMode); };\n var clientSharedValues = getSharedRuntimeConfig(config);\n return __assign(__assign(__assign({}, clientSharedValues), config), { runtime: \"browser\", defaultsMode: defaultsMode, base64Decoder: (_a = config === null || config === void 0 ? void 0 : config.base64Decoder) !== null && _a !== void 0 ? _a : fromBase64, base64Encoder: (_b = config === null || config === void 0 ? void 0 : config.base64Encoder) !== null && _b !== void 0 ? _b : toBase64, bodyLengthChecker: (_c = config === null || config === void 0 ? void 0 : config.bodyLengthChecker) !== null && _c !== void 0 ? _c : calculateBodyLength, credentialDefaultProvider: (_d = config === null || config === void 0 ? void 0 : config.credentialDefaultProvider) !== null && _d !== void 0 ? _d : (function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }), defaultUserAgentProvider: (_e = config === null || config === void 0 ? void 0 : config.defaultUserAgentProvider) !== null && _e !== void 0 ? _e : defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), maxAttempts: (_f = config === null || config === void 0 ? void 0 : config.maxAttempts) !== null && _f !== void 0 ? _f : DEFAULT_MAX_ATTEMPTS, region: (_g = config === null || config === void 0 ? void 0 : config.region) !== null && _g !== void 0 ? _g : invalidProvider(\"Region is missing\"), requestHandler: (_h = config === null || config === void 0 ? void 0 : config.requestHandler) !== null && _h !== void 0 ? _h : new RequestHandler(defaultConfigProvider), retryMode: (_j = config === null || config === void 0 ? void 0 : config.retryMode) !== null && _j !== void 0 ? _j : (function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, defaultConfigProvider()];\n case 1: return [2, (_a.sent()).retryMode || DEFAULT_RETRY_MODE];\n }\n }); }); }), sha256: (_k = config === null || config === void 0 ? void 0 : config.sha256) !== null && _k !== void 0 ? _k : Sha256, streamCollector: (_l = config === null || config === void 0 ? void 0 : config.streamCollector) !== null && _l !== void 0 ? _l : streamCollector, useDualstackEndpoint: (_m = config === null || config === void 0 ? void 0 : config.useDualstackEndpoint) !== null && _m !== void 0 ? _m : (function () { return Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT); }), useFipsEndpoint: (_o = config === null || config === void 0 ? void 0 : config.useFipsEndpoint) !== null && _o !== void 0 ? _o : (function () { return Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT); }), utf8Decoder: (_p = config === null || config === void 0 ? void 0 : config.utf8Decoder) !== null && _p !== void 0 ? _p : fromUtf8, utf8Encoder: (_q = config === null || config === void 0 ? void 0 : config.utf8Encoder) !== null && _q !== void 0 ? _q : toUtf8 });\n};\n","import { parseUrl } from \"@aws-sdk/url-parser\";\nimport { defaultRegionInfoProvider } from \"./endpoints\";\nexport var getRuntimeConfig = function (config) {\n var _a, _b, _c, _d, _e;\n return ({\n apiVersion: \"2016-11-28\",\n disableHostPrefix: (_a = config === null || config === void 0 ? void 0 : config.disableHostPrefix) !== null && _a !== void 0 ? _a : false,\n logger: (_b = config === null || config === void 0 ? void 0 : config.logger) !== null && _b !== void 0 ? _b : {},\n regionInfoProvider: (_c = config === null || config === void 0 ? void 0 : config.regionInfoProvider) !== null && _c !== void 0 ? _c : defaultRegionInfoProvider,\n serviceId: (_d = config === null || config === void 0 ? void 0 : config.serviceId) !== null && _d !== void 0 ? _d : \"Lex Runtime Service\",\n urlParser: (_e = config === null || config === void 0 ? void 0 : config.urlParser) !== null && _e !== void 0 ? _e : parseUrl,\n });\n};\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport var ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport var CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport var DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n return booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV);\n },\n configFileSelector: function (profile) { return booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG); },\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport var ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport var CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport var DEFAULT_USE_FIPS_ENDPOINT = false;\nexport var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n return booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV);\n },\n configFileSelector: function (profile) { return booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG); },\n default: false,\n};\n","import { __extends } from \"tslib\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nvar LexRuntimeServiceClient = (function (_super) {\n __extends(LexRuntimeServiceClient, _super);\n function LexRuntimeServiceClient(configuration) {\n var _this = this;\n var _config_0 = __getRuntimeConfig(configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveRetryConfig(_config_2);\n var _config_4 = resolveHostHeaderConfig(_config_3);\n var _config_5 = resolveAwsAuthConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getRecursionDetectionPlugin(_this.config));\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n LexRuntimeServiceClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return LexRuntimeServiceClient;\n}(__Client));\nexport { LexRuntimeServiceClient };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { AdaptiveRetryStrategy } from \"./AdaptiveRetryStrategy\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES } from \"./config\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \".concat(ENV_MAX_ATTEMPTS, \" mast be a number, got \\\"\").concat(value, \"\\\"\"));\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \".concat(CONFIG_MAX_ATTEMPTS, \" mast be a number, got \\\"\").concat(value, \"\\\"\"));\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var _a;\n var maxAttempts = normalizeProvider((_a = input.maxAttempts) !== null && _a !== void 0 ? _a : DEFAULT_MAX_ATTEMPTS);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: function () { return __awaiter(void 0, void 0, void 0, function () {\n var retryMode;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (input.retryStrategy) {\n return [2, input.retryStrategy];\n }\n return [4, normalizeProvider(input.retryMode)()];\n case 1:\n retryMode = _a.sent();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return [2, new AdaptiveRetryStrategy(maxAttempts)];\n }\n return [2, new StandardRetryStrategy(maxAttempts)];\n }\n });\n }); } });\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport var resolveRegionConfig = function (input) {\n var region = input.region, useFipsEndpoint = input.useFipsEndpoint;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: function () { return __awaiter(void 0, void 0, void 0, function () {\n var providedRegion;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (typeof region === \"string\") {\n return [2, getRealRegion(region)];\n }\n return [4, region()];\n case 1:\n providedRegion = _a.sent();\n return [2, getRealRegion(providedRegion)];\n }\n });\n }); }, useFipsEndpoint: function () { return __awaiter(void 0, void 0, void 0, function () {\n var providedRegion, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof region === \"string\")) return [3, 1];\n _a = region;\n return [3, 3];\n case 1: return [4, region()];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n providedRegion = _a;\n if (isFipsRegion(providedRegion)) {\n return [2, true];\n }\n return [2, typeof useFipsEndpoint === \"boolean\" ? Promise.resolve(useFipsEndpoint) : useFipsEndpoint()];\n }\n });\n }); } });\n};\n","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, next(args)];\n case 1:\n response = (_a.sent()).response;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4, deserializer(response, options)];\n case 3:\n parsed = _a.sent();\n return [2, {\n response: response,\n output: parsed,\n }];\n case 4:\n error_1 = _a.sent();\n Object.defineProperty(error_1, \"$response\", {\n value: response,\n });\n throw error_1;\n case 5: return [2];\n }\n });\n }); };\n };\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var endpoint, request;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpoint = ((_a = context.endpointV2) === null || _a === void 0 ? void 0 : _a.url) && options.urlParser\n ? function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2, options.urlParser(context.endpointV2.url)];\n }); }); }\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n return [4, serializer(args.input, __assign(__assign({}, options), { endpoint: endpoint }))];\n case 1:\n request = _b.sent();\n return [2, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n }); };\n };\n};\n","import { __extends } from \"tslib\";\nimport { ServiceException as __ServiceException, } from \"@aws-sdk/smithy-client\";\nvar LexRuntimeServiceServiceException = (function (_super) {\n __extends(LexRuntimeServiceServiceException, _super);\n function LexRuntimeServiceServiceException(options) {\n var _this = _super.call(this, options) || this;\n Object.setPrototypeOf(_this, LexRuntimeServiceServiceException.prototype);\n return _this;\n }\n return LexRuntimeServiceServiceException;\n}(__ServiceException));\nexport { LexRuntimeServiceServiceException };\n","import { __assign, __extends } from \"tslib\";\nimport { SENSITIVE_STRING, } from \"@aws-sdk/smithy-client\";\nimport { LexRuntimeServiceServiceException as __BaseException } from \"./LexRuntimeServiceServiceException\";\nvar BadRequestException = (function (_super) {\n __extends(BadRequestException, _super);\n function BadRequestException(opts) {\n var _this = _super.call(this, __assign({ name: \"BadRequestException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"BadRequestException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, BadRequestException.prototype);\n return _this;\n }\n return BadRequestException;\n}(__BaseException));\nexport { BadRequestException };\nvar ConflictException = (function (_super) {\n __extends(ConflictException, _super);\n function ConflictException(opts) {\n var _this = _super.call(this, __assign({ name: \"ConflictException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"ConflictException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, ConflictException.prototype);\n return _this;\n }\n return ConflictException;\n}(__BaseException));\nexport { ConflictException };\nvar InternalFailureException = (function (_super) {\n __extends(InternalFailureException, _super);\n function InternalFailureException(opts) {\n var _this = _super.call(this, __assign({ name: \"InternalFailureException\", $fault: \"server\" }, opts)) || this;\n _this.name = \"InternalFailureException\";\n _this.$fault = \"server\";\n Object.setPrototypeOf(_this, InternalFailureException.prototype);\n return _this;\n }\n return InternalFailureException;\n}(__BaseException));\nexport { InternalFailureException };\nvar LimitExceededException = (function (_super) {\n __extends(LimitExceededException, _super);\n function LimitExceededException(opts) {\n var _this = _super.call(this, __assign({ name: \"LimitExceededException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"LimitExceededException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, LimitExceededException.prototype);\n _this.retryAfterSeconds = opts.retryAfterSeconds;\n return _this;\n }\n return LimitExceededException;\n}(__BaseException));\nexport { LimitExceededException };\nvar NotFoundException = (function (_super) {\n __extends(NotFoundException, _super);\n function NotFoundException(opts) {\n var _this = _super.call(this, __assign({ name: \"NotFoundException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"NotFoundException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, NotFoundException.prototype);\n return _this;\n }\n return NotFoundException;\n}(__BaseException));\nexport { NotFoundException };\nexport var FulfillmentState;\n(function (FulfillmentState) {\n FulfillmentState[\"FAILED\"] = \"Failed\";\n FulfillmentState[\"FULFILLED\"] = \"Fulfilled\";\n FulfillmentState[\"READY_FOR_FULFILLMENT\"] = \"ReadyForFulfillment\";\n})(FulfillmentState || (FulfillmentState = {}));\nexport var MessageFormatType;\n(function (MessageFormatType) {\n MessageFormatType[\"COMPOSITE\"] = \"Composite\";\n MessageFormatType[\"CUSTOM_PAYLOAD\"] = \"CustomPayload\";\n MessageFormatType[\"PLAIN_TEXT\"] = \"PlainText\";\n MessageFormatType[\"SSML\"] = \"SSML\";\n})(MessageFormatType || (MessageFormatType = {}));\nexport var DialogActionType;\n(function (DialogActionType) {\n DialogActionType[\"CLOSE\"] = \"Close\";\n DialogActionType[\"CONFIRM_INTENT\"] = \"ConfirmIntent\";\n DialogActionType[\"DELEGATE\"] = \"Delegate\";\n DialogActionType[\"ELICIT_INTENT\"] = \"ElicitIntent\";\n DialogActionType[\"ELICIT_SLOT\"] = \"ElicitSlot\";\n})(DialogActionType || (DialogActionType = {}));\nexport var ConfirmationStatus;\n(function (ConfirmationStatus) {\n ConfirmationStatus[\"CONFIRMED\"] = \"Confirmed\";\n ConfirmationStatus[\"DENIED\"] = \"Denied\";\n ConfirmationStatus[\"NONE\"] = \"None\";\n})(ConfirmationStatus || (ConfirmationStatus = {}));\nvar BadGatewayException = (function (_super) {\n __extends(BadGatewayException, _super);\n function BadGatewayException(opts) {\n var _this = _super.call(this, __assign({ name: \"BadGatewayException\", $fault: \"server\" }, opts)) || this;\n _this.name = \"BadGatewayException\";\n _this.$fault = \"server\";\n Object.setPrototypeOf(_this, BadGatewayException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return BadGatewayException;\n}(__BaseException));\nexport { BadGatewayException };\nvar DependencyFailedException = (function (_super) {\n __extends(DependencyFailedException, _super);\n function DependencyFailedException(opts) {\n var _this = _super.call(this, __assign({ name: \"DependencyFailedException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"DependencyFailedException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, DependencyFailedException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return DependencyFailedException;\n}(__BaseException));\nexport { DependencyFailedException };\nvar LoopDetectedException = (function (_super) {\n __extends(LoopDetectedException, _super);\n function LoopDetectedException(opts) {\n var _this = _super.call(this, __assign({ name: \"LoopDetectedException\", $fault: \"server\" }, opts)) || this;\n _this.name = \"LoopDetectedException\";\n _this.$fault = \"server\";\n Object.setPrototypeOf(_this, LoopDetectedException.prototype);\n _this.Message = opts.Message;\n return _this;\n }\n return LoopDetectedException;\n}(__BaseException));\nexport { LoopDetectedException };\nvar NotAcceptableException = (function (_super) {\n __extends(NotAcceptableException, _super);\n function NotAcceptableException(opts) {\n var _this = _super.call(this, __assign({ name: \"NotAcceptableException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"NotAcceptableException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, NotAcceptableException.prototype);\n return _this;\n }\n return NotAcceptableException;\n}(__BaseException));\nexport { NotAcceptableException };\nexport var DialogState;\n(function (DialogState) {\n DialogState[\"CONFIRM_INTENT\"] = \"ConfirmIntent\";\n DialogState[\"ELICIT_INTENT\"] = \"ElicitIntent\";\n DialogState[\"ELICIT_SLOT\"] = \"ElicitSlot\";\n DialogState[\"FAILED\"] = \"Failed\";\n DialogState[\"FULFILLED\"] = \"Fulfilled\";\n DialogState[\"READY_FOR_FULFILLMENT\"] = \"ReadyForFulfillment\";\n})(DialogState || (DialogState = {}));\nvar RequestTimeoutException = (function (_super) {\n __extends(RequestTimeoutException, _super);\n function RequestTimeoutException(opts) {\n var _this = _super.call(this, __assign({ name: \"RequestTimeoutException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"RequestTimeoutException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, RequestTimeoutException.prototype);\n return _this;\n }\n return RequestTimeoutException;\n}(__BaseException));\nexport { RequestTimeoutException };\nvar UnsupportedMediaTypeException = (function (_super) {\n __extends(UnsupportedMediaTypeException, _super);\n function UnsupportedMediaTypeException(opts) {\n var _this = _super.call(this, __assign({ name: \"UnsupportedMediaTypeException\", $fault: \"client\" }, opts)) || this;\n _this.name = \"UnsupportedMediaTypeException\";\n _this.$fault = \"client\";\n Object.setPrototypeOf(_this, UnsupportedMediaTypeException.prototype);\n return _this;\n }\n return UnsupportedMediaTypeException;\n}(__BaseException));\nexport { UnsupportedMediaTypeException };\nexport var ContentType;\n(function (ContentType) {\n ContentType[\"GENERIC\"] = \"application/vnd.amazonaws.card.generic\";\n})(ContentType || (ContentType = {}));\nexport var ActiveContextTimeToLiveFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ActiveContextFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.parameters && { parameters: SENSITIVE_STRING }))); };\nexport var DeleteSessionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DeleteSessionResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GetSessionRequestFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var DialogActionFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.slots && { slots: SENSITIVE_STRING })), (obj.message && { message: SENSITIVE_STRING }))); };\nexport var IntentSummaryFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.slots && { slots: SENSITIVE_STRING }))); };\nexport var GetSessionResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.recentIntentSummaryView && {\n recentIntentSummaryView: obj.recentIntentSummaryView.map(function (item) { return IntentSummaryFilterSensitiveLog(item); }),\n})), (obj.sessionAttributes && { sessionAttributes: SENSITIVE_STRING })), (obj.dialogAction && { dialogAction: DialogActionFilterSensitiveLog(obj.dialogAction) })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var PostContentRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.sessionAttributes && { sessionAttributes: SENSITIVE_STRING })), (obj.requestAttributes && { requestAttributes: SENSITIVE_STRING })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var PostContentResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.message && { message: SENSITIVE_STRING })), (obj.encodedMessage && { encodedMessage: SENSITIVE_STRING })), (obj.encodedInputTranscript && { encodedInputTranscript: SENSITIVE_STRING })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var PostTextRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.sessionAttributes && { sessionAttributes: SENSITIVE_STRING })), (obj.requestAttributes && { requestAttributes: SENSITIVE_STRING })), (obj.inputText && { inputText: SENSITIVE_STRING })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var IntentConfidenceFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var PredictedIntentFilterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.slots && { slots: SENSITIVE_STRING }))); };\nexport var ButtonFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var GenericAttachmentFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var ResponseCardFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var SentimentResponseFilterSensitiveLog = function (obj) { return (__assign({}, obj)); };\nexport var PostTextResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign(__assign({}, obj), (obj.alternativeIntents && {\n alternativeIntents: obj.alternativeIntents.map(function (item) { return PredictedIntentFilterSensitiveLog(item); }),\n})), (obj.slots && { slots: SENSITIVE_STRING })), (obj.sessionAttributes && { sessionAttributes: SENSITIVE_STRING })), (obj.message && { message: SENSITIVE_STRING })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var PutSessionRequestFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.sessionAttributes && { sessionAttributes: SENSITIVE_STRING })), (obj.dialogAction && { dialogAction: DialogActionFilterSensitiveLog(obj.dialogAction) })), (obj.recentIntentSummaryView && {\n recentIntentSummaryView: obj.recentIntentSummaryView.map(function (item) { return IntentSummaryFilterSensitiveLog(item); }),\n})), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\nexport var PutSessionResponseFilterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.message && { message: SENSITIVE_STRING })), (obj.encodedMessage && { encodedMessage: SENSITIVE_STRING })), (obj.activeContexts && { activeContexts: SENSITIVE_STRING }))); };\n","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { decorateServiceException as __decorateServiceException, expectInt32 as __expectInt32, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, LazyJsonString as __LazyJsonString, limitedParseDouble as __limitedParseDouble, map as __map, resolvedPath as __resolvedPath, throwDefaultError, } from \"@aws-sdk/smithy-client\";\nimport { LexRuntimeServiceServiceException as __BaseException } from \"../models/LexRuntimeServiceServiceException\";\nimport { BadGatewayException, BadRequestException, ConflictException, DependencyFailedException, InternalFailureException, LimitExceededException, LoopDetectedException, NotAcceptableException, NotFoundException, RequestTimeoutException, UnsupportedMediaTypeException, } from \"../models/models_0\";\nexport var serializeAws_restJson1DeleteSessionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, body;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {};\n resolvedPath = \"\".concat((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") +\n \"/bot/{botName}/alias/{botAlias}/user/{userId}/session\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"botName\", function () { return input.botName; }, \"{botName}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"botAlias\", function () { return input.botAlias; }, \"{botAlias}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"userId\", function () { return input.userId; }, \"{userId}\", false);\n return [2, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1GetSessionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, query, body;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {};\n resolvedPath = \"\".concat((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") +\n \"/bot/{botName}/alias/{botAlias}/user/{userId}/session\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"botName\", function () { return input.botName; }, \"{botName}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"botAlias\", function () { return input.botAlias; }, \"{botAlias}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"userId\", function () { return input.userId; }, \"{userId}\", false);\n query = map({\n checkpointLabelFilter: [, input.checkpointLabelFilter],\n });\n return [2, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1PostContentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, body;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = map({}, isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n \"content-type\": input.contentType || \"application/octet-stream\",\n \"x-amz-lex-session-attributes\": [\n function () { return isSerializableHeaderValue(input.sessionAttributes); },\n function () { return context.base64Encoder(Buffer.from(__LazyJsonString.fromObject(input.sessionAttributes))); },\n ],\n \"x-amz-lex-request-attributes\": [\n function () { return isSerializableHeaderValue(input.requestAttributes); },\n function () { return context.base64Encoder(Buffer.from(__LazyJsonString.fromObject(input.requestAttributes))); },\n ],\n accept: input.accept,\n \"x-amz-lex-active-contexts\": [\n function () { return isSerializableHeaderValue(input.activeContexts); },\n function () { return context.base64Encoder(Buffer.from(__LazyJsonString.fromObject(input.activeContexts))); },\n ],\n });\n resolvedPath = \"\".concat((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") +\n \"/bot/{botName}/alias/{botAlias}/user/{userId}/content\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"botName\", function () { return input.botName; }, \"{botName}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"botAlias\", function () { return input.botAlias; }, \"{botAlias}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"userId\", function () { return input.userId; }, \"{userId}\", false);\n if (input.inputStream !== undefined) {\n body = input.inputStream;\n }\n return [2, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1PostTextCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, body;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = {\n \"content-type\": \"application/json\",\n };\n resolvedPath = \"\".concat((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") +\n \"/bot/{botName}/alias/{botAlias}/user/{userId}/text\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"botName\", function () { return input.botName; }, \"{botName}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"botAlias\", function () { return input.botAlias; }, \"{botAlias}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"userId\", function () { return input.userId; }, \"{userId}\", false);\n body = JSON.stringify(__assign(__assign(__assign(__assign({}, (input.activeContexts != null && {\n activeContexts: serializeAws_restJson1ActiveContextsList(input.activeContexts, context),\n })), (input.inputText != null && { inputText: input.inputText })), (input.requestAttributes != null && {\n requestAttributes: serializeAws_restJson1StringMap(input.requestAttributes, context),\n })), (input.sessionAttributes != null && {\n sessionAttributes: serializeAws_restJson1StringMap(input.sessionAttributes, context),\n })));\n return [2, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restJson1PutSessionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, basePath, headers, resolvedPath, body;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port, basePath = _a.path;\n headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/json\",\n accept: input.accept,\n });\n resolvedPath = \"\".concat((basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\") +\n \"/bot/{botName}/alias/{botAlias}/user/{userId}/session\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"botName\", function () { return input.botName; }, \"{botName}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"botAlias\", function () { return input.botAlias; }, \"{botAlias}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"userId\", function () { return input.userId; }, \"{userId}\", false);\n body = JSON.stringify(__assign(__assign(__assign(__assign({}, (input.activeContexts != null && {\n activeContexts: serializeAws_restJson1ActiveContextsList(input.activeContexts, context),\n })), (input.dialogAction != null && {\n dialogAction: serializeAws_restJson1DialogAction(input.dialogAction, context),\n })), (input.recentIntentSummaryView != null && {\n recentIntentSummaryView: serializeAws_restJson1IntentSummaryList(input.recentIntentSummaryView, context),\n })), (input.sessionAttributes != null && {\n sessionAttributes: serializeAws_restJson1StringMap(input.sessionAttributes, context),\n })));\n return [2, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var deserializeAws_restJson1DeleteSessionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2, deserializeAws_restJson1DeleteSessionCommandError(output, context)];\n }\n contents = map({\n $metadata: deserializeMetadata(output),\n });\n _a = __expectNonNull;\n _b = __expectObject;\n return [4, parseBody(output.body, context)];\n case 1:\n data = _a.apply(void 0, [_b.apply(void 0, [_c.sent()]), \"body\"]);\n if (data.botAlias != null) {\n contents.botAlias = __expectString(data.botAlias);\n }\n if (data.botName != null) {\n contents.botName = __expectString(data.botName);\n }\n if (data.sessionId != null) {\n contents.sessionId = __expectString(data.sessionId);\n }\n if (data.userId != null) {\n contents.userId = __expectString(data.userId);\n }\n return [2, contents];\n }\n });\n}); };\nvar deserializeAws_restJson1DeleteSessionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, errorCode, _b, parsedBody;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = [__assign({}, output)];\n _c = {};\n return [4, parseErrorBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_c.body = _d.sent(), _c)]));\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BadRequestException\": return [3, 2];\n case \"com.amazonaws.lexruntimeservice#BadRequestException\": return [3, 2];\n case \"ConflictException\": return [3, 4];\n case \"com.amazonaws.lexruntimeservice#ConflictException\": return [3, 4];\n case \"InternalFailureException\": return [3, 6];\n case \"com.amazonaws.lexruntimeservice#InternalFailureException\": return [3, 6];\n case \"LimitExceededException\": return [3, 8];\n case \"com.amazonaws.lexruntimeservice#LimitExceededException\": return [3, 8];\n case \"NotFoundException\": return [3, 10];\n case \"com.amazonaws.lexruntimeservice#NotFoundException\": return [3, 10];\n }\n return [3, 12];\n case 2: return [4, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n case 3: throw _d.sent();\n case 4: return [4, deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)];\n case 5: throw _d.sent();\n case 6: return [4, deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)];\n case 7: throw _d.sent();\n case 8: return [4, deserializeAws_restJson1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9: throw _d.sent();\n case 10: return [4, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n case 11: throw _d.sent();\n case 12:\n parsedBody = parsedOutput.body;\n throwDefaultError({\n output: output,\n parsedBody: parsedBody,\n exceptionCtor: __BaseException,\n errorCode: errorCode,\n });\n _d.label = 13;\n case 13: return [2];\n }\n });\n}); };\nexport var deserializeAws_restJson1GetSessionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2, deserializeAws_restJson1GetSessionCommandError(output, context)];\n }\n contents = map({\n $metadata: deserializeMetadata(output),\n });\n _a = __expectNonNull;\n _b = __expectObject;\n return [4, parseBody(output.body, context)];\n case 1:\n data = _a.apply(void 0, [_b.apply(void 0, [_c.sent()]), \"body\"]);\n if (data.activeContexts != null) {\n contents.activeContexts = deserializeAws_restJson1ActiveContextsList(data.activeContexts, context);\n }\n if (data.dialogAction != null) {\n contents.dialogAction = deserializeAws_restJson1DialogAction(data.dialogAction, context);\n }\n if (data.recentIntentSummaryView != null) {\n contents.recentIntentSummaryView = deserializeAws_restJson1IntentSummaryList(data.recentIntentSummaryView, context);\n }\n if (data.sessionAttributes != null) {\n contents.sessionAttributes = deserializeAws_restJson1StringMap(data.sessionAttributes, context);\n }\n if (data.sessionId != null) {\n contents.sessionId = __expectString(data.sessionId);\n }\n return [2, contents];\n }\n });\n}); };\nvar deserializeAws_restJson1GetSessionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, errorCode, _b, parsedBody;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = [__assign({}, output)];\n _c = {};\n return [4, parseErrorBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_c.body = _d.sent(), _c)]));\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BadRequestException\": return [3, 2];\n case \"com.amazonaws.lexruntimeservice#BadRequestException\": return [3, 2];\n case \"InternalFailureException\": return [3, 4];\n case \"com.amazonaws.lexruntimeservice#InternalFailureException\": return [3, 4];\n case \"LimitExceededException\": return [3, 6];\n case \"com.amazonaws.lexruntimeservice#LimitExceededException\": return [3, 6];\n case \"NotFoundException\": return [3, 8];\n case \"com.amazonaws.lexruntimeservice#NotFoundException\": return [3, 8];\n }\n return [3, 10];\n case 2: return [4, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n case 3: throw _d.sent();\n case 4: return [4, deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)];\n case 5: throw _d.sent();\n case 6: return [4, deserializeAws_restJson1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7: throw _d.sent();\n case 8: return [4, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n case 9: throw _d.sent();\n case 10:\n parsedBody = parsedOutput.body;\n throwDefaultError({\n output: output,\n parsedBody: parsedBody,\n exceptionCtor: __BaseException,\n errorCode: errorCode,\n });\n _d.label = 11;\n case 11: return [2];\n }\n });\n}); };\nexport var deserializeAws_restJson1PostContentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2, deserializeAws_restJson1PostContentCommandError(output, context)];\n }\n contents = map({\n $metadata: deserializeMetadata(output),\n contentType: [, output.headers[\"content-type\"]],\n intentName: [, output.headers[\"x-amz-lex-intent-name\"]],\n nluIntentConfidence: [\n function () { return void 0 !== output.headers[\"x-amz-lex-nlu-intent-confidence\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-nlu-intent-confidence\"])).toString(\"utf8\"));\n },\n ],\n alternativeIntents: [\n function () { return void 0 !== output.headers[\"x-amz-lex-alternative-intents\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-alternative-intents\"])).toString(\"utf8\"));\n },\n ],\n slots: [\n function () { return void 0 !== output.headers[\"x-amz-lex-slots\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-slots\"])).toString(\"utf8\"));\n },\n ],\n sessionAttributes: [\n function () { return void 0 !== output.headers[\"x-amz-lex-session-attributes\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-session-attributes\"])).toString(\"utf8\"));\n },\n ],\n sentimentResponse: [, output.headers[\"x-amz-lex-sentiment\"]],\n message: [, output.headers[\"x-amz-lex-message\"]],\n encodedMessage: [, output.headers[\"x-amz-lex-encoded-message\"]],\n messageFormat: [, output.headers[\"x-amz-lex-message-format\"]],\n dialogState: [, output.headers[\"x-amz-lex-dialog-state\"]],\n slotToElicit: [, output.headers[\"x-amz-lex-slot-to-elicit\"]],\n inputTranscript: [, output.headers[\"x-amz-lex-input-transcript\"]],\n encodedInputTranscript: [, output.headers[\"x-amz-lex-encoded-input-transcript\"]],\n botVersion: [, output.headers[\"x-amz-lex-bot-version\"]],\n sessionId: [, output.headers[\"x-amz-lex-session-id\"]],\n activeContexts: [\n function () { return void 0 !== output.headers[\"x-amz-lex-active-contexts\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-active-contexts\"])).toString(\"utf8\"));\n },\n ],\n });\n data = output.body;\n contents.audioStream = data;\n return [2, contents];\n });\n}); };\nvar deserializeAws_restJson1PostContentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, errorCode, _b, parsedBody;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = [__assign({}, output)];\n _c = {};\n return [4, parseErrorBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_c.body = _d.sent(), _c)]));\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BadGatewayException\": return [3, 2];\n case \"com.amazonaws.lexruntimeservice#BadGatewayException\": return [3, 2];\n case \"BadRequestException\": return [3, 4];\n case \"com.amazonaws.lexruntimeservice#BadRequestException\": return [3, 4];\n case \"ConflictException\": return [3, 6];\n case \"com.amazonaws.lexruntimeservice#ConflictException\": return [3, 6];\n case \"DependencyFailedException\": return [3, 8];\n case \"com.amazonaws.lexruntimeservice#DependencyFailedException\": return [3, 8];\n case \"InternalFailureException\": return [3, 10];\n case \"com.amazonaws.lexruntimeservice#InternalFailureException\": return [3, 10];\n case \"LimitExceededException\": return [3, 12];\n case \"com.amazonaws.lexruntimeservice#LimitExceededException\": return [3, 12];\n case \"LoopDetectedException\": return [3, 14];\n case \"com.amazonaws.lexruntimeservice#LoopDetectedException\": return [3, 14];\n case \"NotAcceptableException\": return [3, 16];\n case \"com.amazonaws.lexruntimeservice#NotAcceptableException\": return [3, 16];\n case \"NotFoundException\": return [3, 18];\n case \"com.amazonaws.lexruntimeservice#NotFoundException\": return [3, 18];\n case \"RequestTimeoutException\": return [3, 20];\n case \"com.amazonaws.lexruntimeservice#RequestTimeoutException\": return [3, 20];\n case \"UnsupportedMediaTypeException\": return [3, 22];\n case \"com.amazonaws.lexruntimeservice#UnsupportedMediaTypeException\": return [3, 22];\n }\n return [3, 24];\n case 2: return [4, deserializeAws_restJson1BadGatewayExceptionResponse(parsedOutput, context)];\n case 3: throw _d.sent();\n case 4: return [4, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n case 5: throw _d.sent();\n case 6: return [4, deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)];\n case 7: throw _d.sent();\n case 8: return [4, deserializeAws_restJson1DependencyFailedExceptionResponse(parsedOutput, context)];\n case 9: throw _d.sent();\n case 10: return [4, deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)];\n case 11: throw _d.sent();\n case 12: return [4, deserializeAws_restJson1LimitExceededExceptionResponse(parsedOutput, context)];\n case 13: throw _d.sent();\n case 14: return [4, deserializeAws_restJson1LoopDetectedExceptionResponse(parsedOutput, context)];\n case 15: throw _d.sent();\n case 16: return [4, deserializeAws_restJson1NotAcceptableExceptionResponse(parsedOutput, context)];\n case 17: throw _d.sent();\n case 18: return [4, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n case 19: throw _d.sent();\n case 20: return [4, deserializeAws_restJson1RequestTimeoutExceptionResponse(parsedOutput, context)];\n case 21: throw _d.sent();\n case 22: return [4, deserializeAws_restJson1UnsupportedMediaTypeExceptionResponse(parsedOutput, context)];\n case 23: throw _d.sent();\n case 24:\n parsedBody = parsedOutput.body;\n throwDefaultError({\n output: output,\n parsedBody: parsedBody,\n exceptionCtor: __BaseException,\n errorCode: errorCode,\n });\n _d.label = 25;\n case 25: return [2];\n }\n });\n}); };\nexport var deserializeAws_restJson1PostTextCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2, deserializeAws_restJson1PostTextCommandError(output, context)];\n }\n contents = map({\n $metadata: deserializeMetadata(output),\n });\n _a = __expectNonNull;\n _b = __expectObject;\n return [4, parseBody(output.body, context)];\n case 1:\n data = _a.apply(void 0, [_b.apply(void 0, [_c.sent()]), \"body\"]);\n if (data.activeContexts != null) {\n contents.activeContexts = deserializeAws_restJson1ActiveContextsList(data.activeContexts, context);\n }\n if (data.alternativeIntents != null) {\n contents.alternativeIntents = deserializeAws_restJson1IntentList(data.alternativeIntents, context);\n }\n if (data.botVersion != null) {\n contents.botVersion = __expectString(data.botVersion);\n }\n if (data.dialogState != null) {\n contents.dialogState = __expectString(data.dialogState);\n }\n if (data.intentName != null) {\n contents.intentName = __expectString(data.intentName);\n }\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n if (data.messageFormat != null) {\n contents.messageFormat = __expectString(data.messageFormat);\n }\n if (data.nluIntentConfidence != null) {\n contents.nluIntentConfidence = deserializeAws_restJson1IntentConfidence(data.nluIntentConfidence, context);\n }\n if (data.responseCard != null) {\n contents.responseCard = deserializeAws_restJson1ResponseCard(data.responseCard, context);\n }\n if (data.sentimentResponse != null) {\n contents.sentimentResponse = deserializeAws_restJson1SentimentResponse(data.sentimentResponse, context);\n }\n if (data.sessionAttributes != null) {\n contents.sessionAttributes = deserializeAws_restJson1StringMap(data.sessionAttributes, context);\n }\n if (data.sessionId != null) {\n contents.sessionId = __expectString(data.sessionId);\n }\n if (data.slotToElicit != null) {\n contents.slotToElicit = __expectString(data.slotToElicit);\n }\n if (data.slots != null) {\n contents.slots = deserializeAws_restJson1StringMap(data.slots, context);\n }\n return [2, contents];\n }\n });\n}); };\nvar deserializeAws_restJson1PostTextCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, errorCode, _b, parsedBody;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = [__assign({}, output)];\n _c = {};\n return [4, parseErrorBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_c.body = _d.sent(), _c)]));\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BadGatewayException\": return [3, 2];\n case \"com.amazonaws.lexruntimeservice#BadGatewayException\": return [3, 2];\n case \"BadRequestException\": return [3, 4];\n case \"com.amazonaws.lexruntimeservice#BadRequestException\": return [3, 4];\n case \"ConflictException\": return [3, 6];\n case \"com.amazonaws.lexruntimeservice#ConflictException\": return [3, 6];\n case \"DependencyFailedException\": return [3, 8];\n case \"com.amazonaws.lexruntimeservice#DependencyFailedException\": return [3, 8];\n case \"InternalFailureException\": return [3, 10];\n case \"com.amazonaws.lexruntimeservice#InternalFailureException\": return [3, 10];\n case \"LimitExceededException\": return [3, 12];\n case \"com.amazonaws.lexruntimeservice#LimitExceededException\": return [3, 12];\n case \"LoopDetectedException\": return [3, 14];\n case \"com.amazonaws.lexruntimeservice#LoopDetectedException\": return [3, 14];\n case \"NotFoundException\": return [3, 16];\n case \"com.amazonaws.lexruntimeservice#NotFoundException\": return [3, 16];\n }\n return [3, 18];\n case 2: return [4, deserializeAws_restJson1BadGatewayExceptionResponse(parsedOutput, context)];\n case 3: throw _d.sent();\n case 4: return [4, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n case 5: throw _d.sent();\n case 6: return [4, deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)];\n case 7: throw _d.sent();\n case 8: return [4, deserializeAws_restJson1DependencyFailedExceptionResponse(parsedOutput, context)];\n case 9: throw _d.sent();\n case 10: return [4, deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)];\n case 11: throw _d.sent();\n case 12: return [4, deserializeAws_restJson1LimitExceededExceptionResponse(parsedOutput, context)];\n case 13: throw _d.sent();\n case 14: return [4, deserializeAws_restJson1LoopDetectedExceptionResponse(parsedOutput, context)];\n case 15: throw _d.sent();\n case 16: return [4, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n case 17: throw _d.sent();\n case 18:\n parsedBody = parsedOutput.body;\n throwDefaultError({\n output: output,\n parsedBody: parsedBody,\n exceptionCtor: __BaseException,\n errorCode: errorCode,\n });\n _d.label = 19;\n case 19: return [2];\n }\n });\n}); };\nexport var deserializeAws_restJson1PutSessionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2, deserializeAws_restJson1PutSessionCommandError(output, context)];\n }\n contents = map({\n $metadata: deserializeMetadata(output),\n contentType: [, output.headers[\"content-type\"]],\n intentName: [, output.headers[\"x-amz-lex-intent-name\"]],\n slots: [\n function () { return void 0 !== output.headers[\"x-amz-lex-slots\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-slots\"])).toString(\"utf8\"));\n },\n ],\n sessionAttributes: [\n function () { return void 0 !== output.headers[\"x-amz-lex-session-attributes\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-session-attributes\"])).toString(\"utf8\"));\n },\n ],\n message: [, output.headers[\"x-amz-lex-message\"]],\n encodedMessage: [, output.headers[\"x-amz-lex-encoded-message\"]],\n messageFormat: [, output.headers[\"x-amz-lex-message-format\"]],\n dialogState: [, output.headers[\"x-amz-lex-dialog-state\"]],\n slotToElicit: [, output.headers[\"x-amz-lex-slot-to-elicit\"]],\n sessionId: [, output.headers[\"x-amz-lex-session-id\"]],\n activeContexts: [\n function () { return void 0 !== output.headers[\"x-amz-lex-active-contexts\"]; },\n function () {\n return new __LazyJsonString(Buffer.from(context.base64Decoder(output.headers[\"x-amz-lex-active-contexts\"])).toString(\"utf8\"));\n },\n ],\n });\n data = output.body;\n contents.audioStream = data;\n return [2, contents];\n });\n}); };\nvar deserializeAws_restJson1PutSessionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, errorCode, _b, parsedBody;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _a = [__assign({}, output)];\n _c = {};\n return [4, parseErrorBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_c.body = _d.sent(), _c)]));\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BadGatewayException\": return [3, 2];\n case \"com.amazonaws.lexruntimeservice#BadGatewayException\": return [3, 2];\n case \"BadRequestException\": return [3, 4];\n case \"com.amazonaws.lexruntimeservice#BadRequestException\": return [3, 4];\n case \"ConflictException\": return [3, 6];\n case \"com.amazonaws.lexruntimeservice#ConflictException\": return [3, 6];\n case \"DependencyFailedException\": return [3, 8];\n case \"com.amazonaws.lexruntimeservice#DependencyFailedException\": return [3, 8];\n case \"InternalFailureException\": return [3, 10];\n case \"com.amazonaws.lexruntimeservice#InternalFailureException\": return [3, 10];\n case \"LimitExceededException\": return [3, 12];\n case \"com.amazonaws.lexruntimeservice#LimitExceededException\": return [3, 12];\n case \"NotAcceptableException\": return [3, 14];\n case \"com.amazonaws.lexruntimeservice#NotAcceptableException\": return [3, 14];\n case \"NotFoundException\": return [3, 16];\n case \"com.amazonaws.lexruntimeservice#NotFoundException\": return [3, 16];\n }\n return [3, 18];\n case 2: return [4, deserializeAws_restJson1BadGatewayExceptionResponse(parsedOutput, context)];\n case 3: throw _d.sent();\n case 4: return [4, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n case 5: throw _d.sent();\n case 6: return [4, deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)];\n case 7: throw _d.sent();\n case 8: return [4, deserializeAws_restJson1DependencyFailedExceptionResponse(parsedOutput, context)];\n case 9: throw _d.sent();\n case 10: return [4, deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)];\n case 11: throw _d.sent();\n case 12: return [4, deserializeAws_restJson1LimitExceededExceptionResponse(parsedOutput, context)];\n case 13: throw _d.sent();\n case 14: return [4, deserializeAws_restJson1NotAcceptableExceptionResponse(parsedOutput, context)];\n case 15: throw _d.sent();\n case 16: return [4, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n case 17: throw _d.sent();\n case 18:\n parsedBody = parsedOutput.body;\n throwDefaultError({\n output: output,\n parsedBody: parsedBody,\n exceptionCtor: __BaseException,\n errorCode: errorCode,\n });\n _d.label = 19;\n case 19: return [2];\n }\n });\n}); };\nvar map = __map;\nvar deserializeAws_restJson1BadGatewayExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.Message != null) {\n contents.Message = __expectString(data.Message);\n }\n exception = new BadGatewayException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1BadRequestExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new BadRequestException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1ConflictExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new ConflictException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1DependencyFailedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.Message != null) {\n contents.Message = __expectString(data.Message);\n }\n exception = new DependencyFailedException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1InternalFailureExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new InternalFailureException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1LimitExceededExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({\n retryAfterSeconds: [, parsedOutput.headers[\"retry-after\"]],\n });\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new LimitExceededException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1LoopDetectedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.Message != null) {\n contents.Message = __expectString(data.Message);\n }\n exception = new LoopDetectedException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1NotAcceptableExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new NotAcceptableException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1NotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new NotFoundException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1RequestTimeoutExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new RequestTimeoutException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar deserializeAws_restJson1UnsupportedMediaTypeExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data, exception;\n return __generator(this, function (_a) {\n contents = map({});\n data = parsedOutput.body;\n if (data.message != null) {\n contents.message = __expectString(data.message);\n }\n exception = new UnsupportedMediaTypeException(__assign({ $metadata: deserializeMetadata(parsedOutput) }, contents));\n return [2, __decorateServiceException(exception, parsedOutput.body)];\n });\n}); };\nvar serializeAws_restJson1ActiveContext = function (input, context) {\n return __assign(__assign(__assign({}, (input.name != null && { name: input.name })), (input.parameters != null && {\n parameters: serializeAws_restJson1ActiveContextParametersMap(input.parameters, context),\n })), (input.timeToLive != null && {\n timeToLive: serializeAws_restJson1ActiveContextTimeToLive(input.timeToLive, context),\n }));\n};\nvar serializeAws_restJson1ActiveContextParametersMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_restJson1ActiveContextsList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n return serializeAws_restJson1ActiveContext(entry, context);\n });\n};\nvar serializeAws_restJson1ActiveContextTimeToLive = function (input, context) {\n return __assign(__assign({}, (input.timeToLiveInSeconds != null && { timeToLiveInSeconds: input.timeToLiveInSeconds })), (input.turnsToLive != null && { turnsToLive: input.turnsToLive }));\n};\nvar serializeAws_restJson1DialogAction = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.fulfillmentState != null && { fulfillmentState: input.fulfillmentState })), (input.intentName != null && { intentName: input.intentName })), (input.message != null && { message: input.message })), (input.messageFormat != null && { messageFormat: input.messageFormat })), (input.slotToElicit != null && { slotToElicit: input.slotToElicit })), (input.slots != null && { slots: serializeAws_restJson1StringMap(input.slots, context) })), (input.type != null && { type: input.type }));\n};\nvar serializeAws_restJson1IntentSummary = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.checkpointLabel != null && { checkpointLabel: input.checkpointLabel })), (input.confirmationStatus != null && { confirmationStatus: input.confirmationStatus })), (input.dialogActionType != null && { dialogActionType: input.dialogActionType })), (input.fulfillmentState != null && { fulfillmentState: input.fulfillmentState })), (input.intentName != null && { intentName: input.intentName })), (input.slotToElicit != null && { slotToElicit: input.slotToElicit })), (input.slots != null && { slots: serializeAws_restJson1StringMap(input.slots, context) }));\n};\nvar serializeAws_restJson1IntentSummaryList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n return serializeAws_restJson1IntentSummary(entry, context);\n });\n};\nvar serializeAws_restJson1StringMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_restJson1ActiveContext = function (output, context) {\n return {\n name: __expectString(output.name),\n parameters: output.parameters != null\n ? deserializeAws_restJson1ActiveContextParametersMap(output.parameters, context)\n : undefined,\n timeToLive: output.timeToLive != null\n ? deserializeAws_restJson1ActiveContextTimeToLive(output.timeToLive, context)\n : undefined,\n };\n};\nvar deserializeAws_restJson1ActiveContextParametersMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = __expectString(value), _b));\n }, {});\n};\nvar deserializeAws_restJson1ActiveContextsList = function (output, context) {\n var retVal = (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1ActiveContext(entry, context);\n });\n return retVal;\n};\nvar deserializeAws_restJson1ActiveContextTimeToLive = function (output, context) {\n return {\n timeToLiveInSeconds: __expectInt32(output.timeToLiveInSeconds),\n turnsToLive: __expectInt32(output.turnsToLive),\n };\n};\nvar deserializeAws_restJson1Button = function (output, context) {\n return {\n text: __expectString(output.text),\n value: __expectString(output.value),\n };\n};\nvar deserializeAws_restJson1DialogAction = function (output, context) {\n return {\n fulfillmentState: __expectString(output.fulfillmentState),\n intentName: __expectString(output.intentName),\n message: __expectString(output.message),\n messageFormat: __expectString(output.messageFormat),\n slotToElicit: __expectString(output.slotToElicit),\n slots: output.slots != null ? deserializeAws_restJson1StringMap(output.slots, context) : undefined,\n type: __expectString(output.type),\n };\n};\nvar deserializeAws_restJson1GenericAttachment = function (output, context) {\n return {\n attachmentLinkUrl: __expectString(output.attachmentLinkUrl),\n buttons: output.buttons != null ? deserializeAws_restJson1listOfButtons(output.buttons, context) : undefined,\n imageUrl: __expectString(output.imageUrl),\n subTitle: __expectString(output.subTitle),\n title: __expectString(output.title),\n };\n};\nvar deserializeAws_restJson1genericAttachmentList = function (output, context) {\n var retVal = (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1GenericAttachment(entry, context);\n });\n return retVal;\n};\nvar deserializeAws_restJson1IntentConfidence = function (output, context) {\n return {\n score: __limitedParseDouble(output.score),\n };\n};\nvar deserializeAws_restJson1IntentList = function (output, context) {\n var retVal = (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1PredictedIntent(entry, context);\n });\n return retVal;\n};\nvar deserializeAws_restJson1IntentSummary = function (output, context) {\n return {\n checkpointLabel: __expectString(output.checkpointLabel),\n confirmationStatus: __expectString(output.confirmationStatus),\n dialogActionType: __expectString(output.dialogActionType),\n fulfillmentState: __expectString(output.fulfillmentState),\n intentName: __expectString(output.intentName),\n slotToElicit: __expectString(output.slotToElicit),\n slots: output.slots != null ? deserializeAws_restJson1StringMap(output.slots, context) : undefined,\n };\n};\nvar deserializeAws_restJson1IntentSummaryList = function (output, context) {\n var retVal = (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1IntentSummary(entry, context);\n });\n return retVal;\n};\nvar deserializeAws_restJson1listOfButtons = function (output, context) {\n var retVal = (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1Button(entry, context);\n });\n return retVal;\n};\nvar deserializeAws_restJson1PredictedIntent = function (output, context) {\n return {\n intentName: __expectString(output.intentName),\n nluIntentConfidence: output.nluIntentConfidence != null\n ? deserializeAws_restJson1IntentConfidence(output.nluIntentConfidence, context)\n : undefined,\n slots: output.slots != null ? deserializeAws_restJson1StringMap(output.slots, context) : undefined,\n };\n};\nvar deserializeAws_restJson1ResponseCard = function (output, context) {\n return {\n contentType: __expectString(output.contentType),\n genericAttachments: output.genericAttachments != null\n ? deserializeAws_restJson1genericAttachmentList(output.genericAttachments, context)\n : undefined,\n version: __expectString(output.version),\n };\n};\nvar deserializeAws_restJson1SentimentResponse = function (output, context) {\n return {\n sentimentLabel: __expectString(output.sentimentLabel),\n sentimentScore: __expectString(output.sentimentScore),\n };\n};\nvar deserializeAws_restJson1StringMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = __expectString(value), _b));\n }, {});\n};\nvar deserializeMetadata = function (output) {\n var _a, _b;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_b = (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"]) !== null && _b !== void 0 ? _b : output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar isSerializableHeaderValue = function (value) {\n return value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\nvar parseErrorBody = function (errorBody, context) { return __awaiter(void 0, void 0, void 0, function () {\n var value;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, parseBody(errorBody, context)];\n case 1:\n value = _b.sent();\n value.message = (_a = value.message) !== null && _a !== void 0 ? _a : value.Message;\n return [2, value];\n }\n });\n}); };\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { PostTextRequestFilterSensitiveLog, PostTextResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1PostTextCommand, serializeAws_restJson1PostTextCommand, } from \"../protocols/Aws_restJson1\";\nvar PostTextCommand = (function (_super) {\n __extends(PostTextCommand, _super);\n function PostTextCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n PostTextCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LexRuntimeServiceClient\";\n var commandName = \"PostTextCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PostTextRequestFilterSensitiveLog,\n outputFilterSensitiveLog: PostTextResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PostTextCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1PostTextCommand(input, context);\n };\n PostTextCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1PostTextCommand(output, context);\n };\n return PostTextCommand;\n}($Command));\nexport { PostTextCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { PostContentRequestFilterSensitiveLog, PostContentResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1PostContentCommand, serializeAws_restJson1PostContentCommand, } from \"../protocols/Aws_restJson1\";\nvar PostContentCommand = (function (_super) {\n __extends(PostContentCommand, _super);\n function PostContentCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n PostContentCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LexRuntimeServiceClient\";\n var commandName = \"PostContentCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PostContentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: PostContentResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PostContentCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1PostContentCommand(input, context);\n };\n PostContentCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1PostContentCommand(output, context);\n };\n return PostContentCommand;\n}($Command));\nexport { PostContentCommand };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { gunzip, strFromU8 } from 'fflate';\nexport var convert = function (stream) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (stream instanceof Blob || stream instanceof ReadableStream) {\n return [2 /*return*/, new Response(stream)\n .arrayBuffer()\n .then(function (buffer) { return new Uint8Array(buffer); })];\n }\n else {\n return [2 /*return*/, Promise.reject('Invalid content type')];\n }\n return [2 /*return*/];\n });\n}); };\nexport var base64ToArrayBuffer = function (base64) {\n return Uint8Array.from(window.atob(base64), function (c) { return c.charCodeAt(0); });\n};\nexport var gzipDecompressToString = function (data) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n gunzip(data, function (err, resp) {\n if (err)\n reject(err);\n else\n resolve(strFromU8(resp));\n });\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n}); };\n//# sourceMappingURL=utils.js.map","import { __assign, __awaiter, __extends, __generator } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AbstractInteractionsProvider } from './InteractionsProvider';\nimport { LexRuntimeServiceClient, PostTextCommand, PostContentCommand, } from '@aws-sdk/client-lex-runtime-service';\nimport { ConsoleLogger as Logger, Credentials, getAmplifyUserAgentObject, } from '@aws-amplify/core';\nimport { convert } from './AWSLexProviderHelper/utils';\nvar logger = new Logger('AWSLexProvider');\nvar AWSLexProvider = /** @class */ (function (_super) {\n __extends(AWSLexProvider, _super);\n function AWSLexProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, options) || this;\n _this._botsCompleteCallback = {};\n return _this;\n }\n AWSLexProvider.prototype.getProviderName = function () {\n return 'AWSLexProvider';\n };\n AWSLexProvider.prototype.configure = function (config) {\n if (config === void 0) { config = {}; }\n var propertiesToTest = ['name', 'alias', 'region'];\n Object.keys(config).forEach(function (botKey) {\n var botConfig = config[botKey];\n // is bot config correct\n if (!propertiesToTest.every(function (x) { return x in botConfig; })) {\n throw new Error('invalid bot configuration');\n }\n });\n return _super.prototype.configure.call(this, config);\n };\n /**\n * @private\n * @deprecated\n * This is used internally by 'sendMessage' to call onComplete callback\n * for a bot if configured\n */\n AWSLexProvider.prototype.reportBotStatus = function (data, botname) {\n var _this = this;\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', data.dialogState);\n if (data.dialogState === 'ReadyForFulfillment' ||\n data.dialogState === 'Fulfilled') {\n if (typeof this._botsCompleteCallback[botname] === 'function') {\n setTimeout(function () { return _this._botsCompleteCallback[botname](null, data); }, 0);\n }\n if (this._config &&\n typeof this._config[botname].onComplete === 'function') {\n setTimeout(function () { return _this._config[botname].onComplete(null, data); }, 0);\n }\n }\n if (data.dialogState === 'Failed') {\n if (typeof this._botsCompleteCallback[botname] === 'function') {\n setTimeout(function () { return _this._botsCompleteCallback[botname]('Bot conversation failed'); }, 0);\n }\n if (this._config &&\n typeof this._config[botname].onComplete === 'function') {\n setTimeout(function () { return _this._config[botname].onComplete('Bot conversation failed'); }, 0);\n }\n }\n };\n AWSLexProvider.prototype.sendMessage = function (botname, message) {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, error_1, params, postTextCommand, data, err_1, content, messageType, inputStream, _a, postContentCommand, data, audioArray, _b, response, err_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n // check if bot exists\n if (!this._config[botname]) {\n return [2 /*return*/, Promise.reject('Bot ' + botname + ' does not exist')];\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Credentials.get()];\n case 2:\n credentials = _c.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _c.sent();\n return [2 /*return*/, Promise.reject('No credentials')];\n case 4:\n this.lexRuntimeServiceClient = new LexRuntimeServiceClient({\n region: this._config[botname].region,\n credentials: credentials,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n if (!(typeof message === 'string')) return [3 /*break*/, 9];\n params = {\n botAlias: this._config[botname].alias,\n botName: botname,\n inputText: message,\n userId: credentials.identityId,\n };\n logger.debug('postText to lex', message);\n _c.label = 5;\n case 5:\n _c.trys.push([5, 7, , 8]);\n postTextCommand = new PostTextCommand(params);\n return [4 /*yield*/, this.lexRuntimeServiceClient.send(postTextCommand)];\n case 6:\n data = _c.sent();\n this.reportBotStatus(data, botname);\n return [2 /*return*/, data];\n case 7:\n err_1 = _c.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 8: return [3 /*break*/, 21];\n case 9:\n content = message.content, messageType = message.options.messageType;\n if (!(messageType === 'voice')) return [3 /*break*/, 13];\n if (typeof content !== 'object') {\n return [2 /*return*/, Promise.reject('invalid content type')];\n }\n if (!(content instanceof Uint8Array)) return [3 /*break*/, 10];\n _a = content;\n return [3 /*break*/, 12];\n case 10: return [4 /*yield*/, convert(content)];\n case 11:\n _a = _c.sent();\n _c.label = 12;\n case 12:\n inputStream = _a;\n params = {\n botAlias: this._config[botname].alias,\n botName: botname,\n contentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n userId: credentials.identityId,\n accept: 'audio/mpeg',\n inputStream: inputStream,\n };\n return [3 /*break*/, 14];\n case 13:\n if (typeof content !== 'string')\n return [2 /*return*/, Promise.reject('invalid content type')];\n params = {\n botAlias: this._config[botname].alias,\n botName: botname,\n contentType: 'text/plain; charset=utf-8',\n inputStream: content,\n userId: credentials.identityId,\n accept: 'audio/mpeg',\n };\n _c.label = 14;\n case 14:\n logger.debug('postContent to lex', message);\n _c.label = 15;\n case 15:\n _c.trys.push([15, 20, , 21]);\n postContentCommand = new PostContentCommand(params);\n return [4 /*yield*/, this.lexRuntimeServiceClient.send(postContentCommand)];\n case 16:\n data = _c.sent();\n if (!data.audioStream) return [3 /*break*/, 18];\n return [4 /*yield*/, convert(data.audioStream)];\n case 17:\n _b = _c.sent();\n return [3 /*break*/, 19];\n case 18:\n _b = undefined;\n _c.label = 19;\n case 19:\n audioArray = _b;\n response = __assign(__assign({}, data), { audioStream: audioArray });\n this.reportBotStatus(response, botname);\n return [2 /*return*/, response];\n case 20:\n err_2 = _c.sent();\n return [2 /*return*/, Promise.reject(err_2)];\n case 21: return [2 /*return*/];\n }\n });\n });\n };\n AWSLexProvider.prototype.onComplete = function (botname, callback) {\n // does bot exist\n if (!this._config[botname]) {\n throw new Error('Bot ' + botname + ' does not exist');\n }\n this._botsCompleteCallback[botname] = callback;\n };\n return AWSLexProvider;\n}(AbstractInteractionsProvider));\nexport { AWSLexProvider };\n//# sourceMappingURL=AWSLexProvider.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AWSLexProvider } from './Providers';\nvar logger = new Logger('Interactions');\nvar InteractionsClass = /** @class */ (function () {\n /**\n * Initialize PubSub with AWS configurations\n *\n * @param {InteractionsOptions} options - Configuration object for Interactions\n */\n function InteractionsClass(options) {\n if (options === void 0) { options = {}; }\n this._options = options;\n logger.debug('Interactions Options', this._options);\n this._pluggables = {};\n }\n InteractionsClass.prototype.getModuleName = function () {\n return 'Interactions';\n };\n /**\n *\n * @param {InteractionsOptions} options - Configuration object for Interactions\n * @return {InteractionsOptions} - The current configuration\n */\n InteractionsClass.prototype.configure = function (options) {\n var _this = this;\n var opt = options ? options.Interactions || options : {};\n logger.debug('configure Interactions', { opt: opt });\n this._options = __assign(__assign({ bots: {} }, opt), opt.Interactions);\n var aws_bots_config = this._options.aws_bots_config;\n var bots_config = this._options.bots;\n if (!Object.keys(bots_config).length && aws_bots_config) {\n // Convert aws_bots_config to bots object\n if (Array.isArray(aws_bots_config)) {\n aws_bots_config.forEach(function (bot) {\n _this._options.bots[bot.name] = bot;\n });\n }\n }\n // configure bots to their specific providers\n Object.keys(bots_config).forEach(function (botKey) {\n var _a;\n var bot = bots_config[botKey];\n var providerName = bot.providerName || 'AWSLexProvider';\n // add default provider if required\n if (!_this._pluggables.AWSLexProvider &&\n providerName === 'AWSLexProvider') {\n _this._pluggables.AWSLexProvider = new AWSLexProvider();\n }\n // configure bot with it's respective provider\n if (_this._pluggables[providerName]) {\n _this._pluggables[providerName].configure((_a = {}, _a[bot.name] = bot, _a));\n }\n else {\n logger.debug(\"bot \" + bot.name + \" was not configured as \" + providerName + \" provider was not found\");\n }\n });\n return this._options;\n };\n InteractionsClass.prototype.addPluggable = function (pluggable) {\n var _this = this;\n if (pluggable && pluggable.getCategory() === 'Interactions') {\n if (!this._pluggables[pluggable.getProviderName()]) {\n // configure bots for the new plugin\n Object.keys(this._options.bots)\n .filter(function (botKey) {\n return _this._options.bots[botKey].providerName ===\n pluggable.getProviderName();\n })\n .forEach(function (botKey) {\n var _a;\n var bot = _this._options.bots[botKey];\n pluggable.configure((_a = {}, _a[bot.name] = bot, _a));\n });\n this._pluggables[pluggable.getProviderName()] = pluggable;\n return;\n }\n else {\n throw new Error('Pluggable ' + pluggable.getProviderName() + ' already plugged');\n }\n }\n };\n InteractionsClass.prototype.send = function (botname, message) {\n return __awaiter(this, void 0, void 0, function () {\n var botProvider;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._options.bots || !this._options.bots[botname]) {\n return [2 /*return*/, Promise.reject('Bot ' + botname + ' does not exist')];\n }\n botProvider = this._options.bots[botname].providerName || 'AWSLexProvider';\n if (!this._pluggables[botProvider]) {\n return [2 /*return*/, Promise.reject('Bot ' +\n botProvider +\n ' does not have valid pluggin did you try addPluggable first?')];\n }\n return [4 /*yield*/, this._pluggables[botProvider].sendMessage(botname, message)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n InteractionsClass.prototype.onComplete = function (botname, callback) {\n if (!this._options.bots || !this._options.bots[botname]) {\n throw new Error('Bot ' + botname + ' does not exist');\n }\n var botProvider = this._options.bots[botname].providerName || 'AWSLexProvider';\n if (!this._pluggables[botProvider]) {\n throw new Error('Bot ' +\n botProvider +\n ' does not have valid pluggin did you try addPluggable first?');\n }\n this._pluggables[botProvider].onComplete(botname, callback);\n };\n return InteractionsClass;\n}());\nexport { InteractionsClass };\nexport var Interactions = new InteractionsClass();\nAmplify.register(Interactions);\n//# sourceMappingURL=Interactions.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport noop from 'lodash/noop';\n// Per https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API\nvar hidden;\nvar visibilityChange;\nvar isBrowser = browserOrNode().isBrowser;\nif (isBrowser && document) {\n if (typeof document.hidden !== 'undefined') {\n hidden = 'hidden';\n visibilityChange = 'visibilitychange';\n }\n else if (typeof document['msHidden'] !== 'undefined') {\n hidden = 'msHidden';\n visibilityChange = 'msvisibilitychange';\n }\n else if (typeof document['webkitHidden'] !== 'undefined') {\n hidden = 'webkitHidden';\n visibilityChange = 'webkitvisibilitychange';\n }\n}\nvar logger = new Logger('InAppMessagingSessionTracker');\nvar SessionTracker = /** @class */ (function () {\n function SessionTracker(sessionStateChangeHandler) {\n var _this = this;\n if (sessionStateChangeHandler === void 0) { sessionStateChangeHandler = noop; }\n this.start = function () {\n if (isBrowser) {\n document === null || document === void 0 ? void 0 : document.addEventListener(visibilityChange, _this.visibilityChangeHandler);\n }\n return _this.getSessionState();\n };\n this.end = function () {\n if (isBrowser) {\n document === null || document === void 0 ? void 0 : document.removeEventListener(visibilityChange, _this.visibilityChangeHandler);\n }\n return _this.getSessionState();\n };\n this.getSessionState = function () {\n if (isBrowser && document && !document[hidden]) {\n return 'started';\n }\n // If, for any reason, document is undefined the session will never start\n return 'ended';\n };\n this.visibilityChangeHandler = function () {\n if (!isBrowser || !document) {\n return;\n }\n if (document[hidden]) {\n logger.debug('App is now hidden');\n _this.sessionStateChangeHandler('ended');\n }\n else {\n logger.debug('App is now visible');\n _this.sessionStateChangeHandler('started');\n }\n };\n this.sessionStateChangeHandler = sessionStateChangeHandler;\n }\n return SessionTracker;\n}());\nexport default SessionTracker;\n//# sourceMappingURL=SessionTracker.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator, __read, __spread } from \"tslib\";\nvar eventListeners = {};\nexport var notifyEventListeners = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _a;\n (_a = eventListeners[type]) === null || _a === void 0 ? void 0 : _a.forEach(function (listener) {\n listener.handleEvent.apply(listener, __spread(args));\n });\n};\nexport var notifyEventListenersAndAwaitHandlers = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _a;\n return Promise.all(Array.from((_a = eventListeners[type]) !== null && _a !== void 0 ? _a : []).map(function (listener) { return __awaiter(void 0, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, listener.handleEvent.apply(listener, __spread(args))];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); }));\n};\nexport var addEventListener = function (type, handler) {\n // If there is no listener set for the event type, just create it\n if (!eventListeners[type]) {\n eventListeners[type] = new Set();\n }\n var listener = {\n handleEvent: handler,\n remove: function () {\n eventListeners[type].delete(listener);\n },\n };\n eventListeners[type].add(listener);\n return listener;\n};\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { authenticatedHandler } from '../../clients/handlers/authenticated';\nimport { composeServiceApi } from '../../clients/internal/composeServiceApi';\nimport { extendedEncodeURIComponent } from '../../clients/middleware/signing/utils/extendedEncodeURIComponent';\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients/serde';\nimport { defaultConfig, getSharedHeaders } from './base';\nvar getInAppMessagesSerializer = function (_a, endpoint) {\n var ApplicationId = _a.ApplicationId, EndpointId = _a.EndpointId;\n var headers = getSharedHeaders();\n var url = new URL(endpoint.url);\n url.pathname = \"v1/apps/\".concat(extendedEncodeURIComponent(ApplicationId), \"/endpoints/\").concat(extendedEncodeURIComponent(EndpointId), \"/inappmessages\");\n return { method: 'GET', headers: headers, url: url };\n};\nvar getInAppMessagesDeserializer = function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var error, InAppMessageCampaigns;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(response.statusCode >= 300)) return [3 /*break*/, 2];\n return [4 /*yield*/, parseJsonError(response)];\n case 1:\n error = _a.sent();\n throw error;\n case 2: return [4 /*yield*/, parseJsonBody(response)];\n case 3:\n InAppMessageCampaigns = (_a.sent()).InAppMessageCampaigns;\n return [2 /*return*/, {\n InAppMessagesResponse: { InAppMessageCampaigns: InAppMessageCampaigns },\n $metadata: parseMetadata(response),\n }];\n }\n });\n}); };\n/**\n * @internal\n */\nexport var getInAppMessages = composeServiceApi(authenticatedHandler, getInAppMessagesSerializer, getInAppMessagesDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator } from \"tslib\";\nimport { Category, ClientDevice, Credentials, getAmplifyUserAgent, InAppMessagingAction, PushNotificationAction, StorageHelper, transferKeyToUpperCase, } from '@aws-amplify/core';\nimport { Cache } from '@aws-amplify/cache';\nimport { putEvents, updateEndpoint, } from '@aws-amplify/core/internals/aws-clients/pinpoint';\nimport { v4 as uuid } from 'uuid';\nvar AWSPinpointProviderCommon = /** @class */ (function () {\n function AWSPinpointProviderCommon(logger) {\n var _this = this;\n var _a;\n this.config = {};\n this.endpointInitialized = false;\n this.initialized = false;\n this.identifyUser = function (userId, userInfo) { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.updateEndpoint(userId, userInfo)];\n case 3:\n _a.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _a.sent();\n this.logger.error('Error identifying user', err_1);\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n this.init = function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, endpointId, storage, providerName, _b, err_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this.config, endpointId = _a.endpointId, storage = _a.storage;\n providerName = this.getProviderName();\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, , 7]);\n if (!(typeof storage.sync === 'function')) return [3 /*break*/, 3];\n return [4 /*yield*/, storage.sync()];\n case 2:\n _c.sent();\n _c.label = 3;\n case 3:\n if (!!endpointId) return [3 /*break*/, 5];\n _b = this.config;\n return [4 /*yield*/, this.getEndpointId()];\n case 4:\n _b.endpointId = _c.sent();\n _c.label = 5;\n case 5:\n this.initialized = true;\n return [3 /*break*/, 7];\n case 6:\n err_2 = _c.sent();\n this.logger.error(\"Failed to initialize \" + providerName, err_2);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); };\n this.getUserAgentValue = function () {\n var customUserAgentDetails;\n if (_this.getSubCategory() === 'PushNotification') {\n customUserAgentDetails = {\n category: Category.PushNotification,\n action: PushNotificationAction.None,\n };\n }\n else {\n customUserAgentDetails = {\n category: Category.InAppMessaging,\n action: InAppMessagingAction.None,\n };\n }\n return getAmplifyUserAgent(customUserAgentDetails);\n };\n this.recordAnalyticsEvent = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, appId, credentials, endpointId, region, input, err_3;\n var _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n // Update credentials\n _a = this.config;\n return [4 /*yield*/, this.getCredentials()];\n case 1:\n // Update credentials\n _a.credentials = _e.sent();\n // Assert required configuration properties to make `putEvents` request are present\n this.assertNotEmptyConfiguration();\n _b = this.config, appId = _b.appId, credentials = _b.credentials, endpointId = _b.endpointId, region = _b.region;\n _e.label = 2;\n case 2:\n _e.trys.push([2, 4, , 5]);\n input = {\n ApplicationId: appId,\n EventsRequest: {\n BatchItem: (_c = {},\n _c[endpointId] = {\n Endpoint: {},\n Events: (_d = {},\n _d[uuid()] = event,\n _d),\n },\n _c),\n },\n };\n this.logger.debug('recording analytics event');\n return [4 /*yield*/, putEvents({ credentials: credentials, region: region, userAgentValue: this.getUserAgentValue() }, input)];\n case 3:\n _e.sent();\n return [3 /*break*/, 5];\n case 4:\n err_3 = _e.sent();\n this.logger.error('Error recording analytics event', err_3);\n throw err_3;\n case 5: return [2 /*return*/];\n }\n });\n }); };\n this.updateEndpoint = function (userId, userInfo) {\n if (userId === void 0) { userId = null; }\n if (userInfo === void 0) { userInfo = null; }\n return __awaiter(_this, void 0, void 0, function () {\n var credentials, credentialsUpdated, _a, appId, endpointId, _b, endpointInfo, region, _c, address, attributes, demographic, location_1, metrics, optOut, _d, appVersion, make, model, platform, version, input, err_4;\n var _this = this;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.getCredentials()];\n case 1:\n credentials = _f.sent();\n credentialsUpdated = !this.config.credentials ||\n Object.keys(credentials).some(function (key) { return credentials[key] !== _this.config.credentials[key]; });\n // If endpoint is already initialized, and nothing else is changing, just early return\n if (this.endpointInitialized &&\n !credentialsUpdated &&\n !userId &&\n !userInfo) {\n return [2 /*return*/];\n }\n // Update credentials\n this.config.credentials = credentials;\n // Assert required configuration properties to make `updateEndpoint` request are present\n this.assertNotEmptyConfiguration();\n _a = this.config, appId = _a.appId, endpointId = _a.endpointId, _b = _a.endpointInfo, endpointInfo = _b === void 0 ? {} : _b, region = _a.region;\n _f.label = 2;\n case 2:\n _f.trys.push([2, 4, , 5]);\n _c = userInfo !== null && userInfo !== void 0 ? userInfo : {}, address = _c.address, attributes = _c.attributes, demographic = _c.demographic, location_1 = _c.location, metrics = _c.metrics, optOut = _c.optOut;\n _d = this.clientInfo, appVersion = _d.appVersion, make = _d.make, model = _d.model, platform = _d.platform, version = _d.version;\n input = {\n ApplicationId: appId,\n EndpointId: endpointId,\n EndpointRequest: {\n RequestId: uuid(),\n EffectiveDate: new Date().toISOString(),\n ChannelType: endpointInfo.channelType,\n Address: address !== null && address !== void 0 ? address : endpointInfo.address,\n Attributes: __assign(__assign({}, endpointInfo.attributes), attributes),\n Demographic: __assign({ AppVersion: appVersion, Make: make, Model: model, ModelVersion: version, Platform: platform }, transferKeyToUpperCase(__assign(__assign({}, endpointInfo.demographic), demographic))),\n Location: transferKeyToUpperCase(__assign(__assign({}, endpointInfo.location), location_1)),\n Metrics: __assign(__assign({}, endpointInfo.metrics), metrics),\n OptOut: optOut !== null && optOut !== void 0 ? optOut : endpointInfo.optOut,\n User: {\n UserId: (_e = userId !== null && userId !== void 0 ? userId : endpointInfo.userId) !== null && _e !== void 0 ? _e : credentials.identityId,\n UserAttributes: attributes !== null && attributes !== void 0 ? attributes : endpointInfo.userAttributes,\n },\n },\n };\n this.logger.debug('updating endpoint');\n return [4 /*yield*/, updateEndpoint({ credentials: credentials, region: region, userAgentValue: this.getUserAgentValue() }, input)];\n case 3:\n _f.sent();\n this.endpointInitialized = true;\n return [3 /*break*/, 5];\n case 4:\n err_4 = _f.sent();\n throw err_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n this.getEndpointId = function () { return __awaiter(_this, void 0, void 0, function () {\n var appId, cacheKey, cachedEndpointId, endpointId, ttl, expiration;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n appId = this.config.appId;\n cacheKey = this.getSubCategory() === 'PushNotification'\n ? this.getProviderName() + \"_\" + appId\n : this.getSubCategory() + \":\" + this.getProviderName() + \":\" + appId;\n return [4 /*yield*/, Cache.getItem(cacheKey)];\n case 1:\n cachedEndpointId = _a.sent();\n // Found in cache, just return it\n if (cachedEndpointId) {\n return [2 /*return*/, cachedEndpointId];\n }\n endpointId = uuid();\n ttl = 1000 * 60 * 60 * 24 * 365 * 100;\n expiration = new Date().getTime() + ttl;\n Cache.setItem(cacheKey, endpointId, {\n expires: expiration,\n priority: 1,\n });\n return [2 /*return*/, endpointId];\n }\n });\n }); };\n this.getCredentials = function () { return __awaiter(_this, void 0, void 0, function () {\n var credentials, err_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials) {\n this.logger.debug('no credentials found');\n return [2 /*return*/, null];\n }\n return [2 /*return*/, Credentials.shear(credentials)];\n case 2:\n err_5 = _a.sent();\n this.logger.error('Error getting credentials:', err_5);\n return [2 /*return*/, null];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n this.assertNotEmptyConfiguration = function () {\n var _a = _this.config, appId = _a.appId, credentials = _a.credentials, region = _a.region;\n if (!appId || !credentials || !region) {\n throw new Error('One or more of credentials, appId or region is not configured');\n }\n };\n this.config = { storage: new StorageHelper().getStorage() };\n this.clientInfo = (_a = ClientDevice.clientInfo()) !== null && _a !== void 0 ? _a : {};\n this.logger = logger;\n }\n /**\n * get the category of the plugin\n */\n AWSPinpointProviderCommon.prototype.getCategory = function () {\n return AWSPinpointProviderCommon.category;\n };\n /**\n * get provider name of the plugin\n */\n AWSPinpointProviderCommon.prototype.getProviderName = function () {\n return AWSPinpointProviderCommon.providerName;\n };\n AWSPinpointProviderCommon.prototype.configure = function (config) {\n if (config === void 0) { config = {}; }\n this.config = __assign(__assign({}, this.config), config);\n this.logger.debug(\"configure \" + this.getProviderName() + this.getSubCategory() + \"Provider\", this.config);\n return this.config;\n };\n AWSPinpointProviderCommon.category = 'Notifications';\n AWSPinpointProviderCommon.providerName = 'AWSPinpoint';\n return AWSPinpointProviderCommon;\n}());\nexport default AWSPinpointProviderCommon;\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var InAppMessageInteractionEvent;\n(function (InAppMessageInteractionEvent) {\n InAppMessageInteractionEvent[\"MESSAGE_RECEIVED\"] = \"MESSAGE_RECEIVED_EVENT\";\n InAppMessageInteractionEvent[\"MESSAGE_DISPLAYED\"] = \"MESSAGE_DISPLAYED_EVENT\";\n InAppMessageInteractionEvent[\"MESSAGE_DISMISSED\"] = \"MESSAGE_DISMISSED_EVENT\";\n InAppMessageInteractionEvent[\"MESSAGE_ACTION_TAKEN\"] = \"MESSAGE_ACTION_TAKEN_EVENT\";\n})(InAppMessageInteractionEvent || (InAppMessageInteractionEvent = {}));\n//# sourceMappingURL=types.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AWSPinpointMessageEvent;\n(function (AWSPinpointMessageEvent) {\n AWSPinpointMessageEvent[\"MESSAGE_DISPLAYED\"] = \"_inapp.message_displayed\";\n AWSPinpointMessageEvent[\"MESSAGE_DISMISSED\"] = \"_inapp.message_dismissed\";\n AWSPinpointMessageEvent[\"MESSAGE_ACTION_TAKEN\"] = \"_inapp.message_clicked\";\n})(AWSPinpointMessageEvent || (AWSPinpointMessageEvent = {}));\n//# sourceMappingURL=types.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { default as SessionTracker } from './SessionTracker';\nexport default SessionTracker;\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\n//# sourceMappingURL=constants.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __read } from \"tslib\";\nimport { Amplify, ConsoleLogger, Hub } from '@aws-amplify/core';\nimport isEmpty from 'lodash/isEmpty';\nimport { AMPLIFY_SYMBOL } from '../../../common';\nvar DELIVERY_TYPE = 'IN_APP_MESSAGE';\nvar eventNameMemo = {};\nvar eventAttributesMemo = {};\nvar eventMetricsMemo = {};\nexport var logger = new ConsoleLogger('InAppMessaging.AWSPinpointProvider');\nexport var dispatchInAppMessagingEvent = function (event, data, message) {\n Hub.dispatch('inAppMessaging', { event: event, data: data, message: message }, 'InAppMessaging', AMPLIFY_SYMBOL);\n};\nexport var recordAnalyticsEvent = function (event, message) {\n if (Amplify.Analytics && typeof Amplify.Analytics.record === 'function') {\n var id = message.id, metadata = message.metadata;\n Amplify.Analytics.record({\n name: event,\n attributes: {\n campaign_id: id,\n delivery_type: DELIVERY_TYPE,\n treatment_id: metadata === null || metadata === void 0 ? void 0 : metadata.treatmentId,\n },\n });\n }\n else {\n logger.debug('Analytics module is not registered into Amplify');\n }\n};\nexport var getStartOfDay = function () {\n var now = new Date();\n now.setHours(0, 0, 0, 0);\n return now.toISOString();\n};\nexport var matchesEventType = function (_a, _b) {\n var CampaignId = _a.CampaignId, Schedule = _a.Schedule;\n var eventType = _b.name;\n var _c;\n var EventType = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).EventType;\n var memoKey = CampaignId + \":\" + eventType;\n if (!eventNameMemo.hasOwnProperty(memoKey)) {\n eventNameMemo[memoKey] = !!(EventType === null || EventType === void 0 ? void 0 : EventType.Values.includes(eventType));\n }\n return eventNameMemo[memoKey];\n};\nexport var matchesAttributes = function (_a, _b) {\n var CampaignId = _a.CampaignId, Schedule = _a.Schedule;\n var attributes = _b.attributes;\n var _c;\n var Attributes = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).Attributes;\n if (isEmpty(Attributes)) {\n // if message does not have attributes defined it does not matter what attributes are on the event\n return true;\n }\n if (isEmpty(attributes)) {\n // if message does have attributes but the event does not then it always fails the check\n return false;\n }\n var memoKey = CampaignId + \":\" + JSON.stringify(attributes);\n if (!eventAttributesMemo.hasOwnProperty(memoKey)) {\n eventAttributesMemo[memoKey] = Object.entries(Attributes).every(function (_a) {\n var _b = __read(_a, 2), key = _b[0], Values = _b[1].Values;\n return Values.includes(attributes[key]);\n });\n }\n return eventAttributesMemo[memoKey];\n};\nexport var matchesMetrics = function (_a, _b) {\n var CampaignId = _a.CampaignId, Schedule = _a.Schedule;\n var metrics = _b.metrics;\n var _c;\n var Metrics = ((_c = Schedule === null || Schedule === void 0 ? void 0 : Schedule.EventFilter) === null || _c === void 0 ? void 0 : _c.Dimensions).Metrics;\n if (isEmpty(Metrics)) {\n // if message does not have metrics defined it does not matter what metrics are on the event\n return true;\n }\n if (isEmpty(metrics)) {\n // if message does have metrics but the event does not then it always fails the check\n return false;\n }\n var memoKey = CampaignId + \":\" + JSON.stringify(metrics);\n if (!eventMetricsMemo.hasOwnProperty(memoKey)) {\n eventMetricsMemo[memoKey] = Object.entries(Metrics).every(function (_a) {\n var _b = __read(_a, 2), key = _b[0], _c = _b[1], ComparisonOperator = _c.ComparisonOperator, Value = _c.Value;\n var compare = getComparator(ComparisonOperator);\n // if there is some unknown comparison operator, treat as a comparison failure\n return compare ? compare(Value, metrics[key]) : false;\n });\n }\n return eventMetricsMemo[memoKey];\n};\nexport var getComparator = function (operator) {\n switch (operator) {\n case 'EQUAL':\n return function (metricsVal, eventVal) { return metricsVal === eventVal; };\n case 'GREATER_THAN':\n return function (metricsVal, eventVal) { return metricsVal < eventVal; };\n case 'GREATER_THAN_OR_EQUAL':\n return function (metricsVal, eventVal) { return metricsVal <= eventVal; };\n case 'LESS_THAN':\n return function (metricsVal, eventVal) { return metricsVal > eventVal; };\n case 'LESS_THAN_OR_EQUAL':\n return function (metricsVal, eventVal) { return metricsVal >= eventVal; };\n default:\n return null;\n }\n};\nexport var isBeforeEndDate = function (_a) {\n var Schedule = _a.Schedule;\n if (!(Schedule === null || Schedule === void 0 ? void 0 : Schedule.EndDate)) {\n return true;\n }\n return new Date() < new Date(Schedule.EndDate);\n};\nexport var isQuietTime = function (message) {\n var Schedule = message.Schedule;\n if (!(Schedule === null || Schedule === void 0 ? void 0 : Schedule.QuietTime)) {\n return false;\n }\n var pattern = /^[0-2]\\d:[0-5]\\d$/; // basic sanity check, not a fully featured HH:MM validation\n var _a = Schedule.QuietTime, Start = _a.Start, End = _a.End;\n if (!Start ||\n !End ||\n Start === End ||\n !pattern.test(Start) ||\n !pattern.test(End)) {\n return false;\n }\n var now = new Date();\n var start = new Date(now);\n var end = new Date(now);\n var _b = __read(Start.split(':'), 2), startHours = _b[0], startMinutes = _b[1];\n var _c = __read(End.split(':'), 2), endHours = _c[0], endMinutes = _c[1];\n start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);\n end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);\n // if quiet time includes midnight, bump the end time to the next day\n if (start > end) {\n end.setDate(end.getDate() + 1);\n }\n var isQuietTime = now >= start && now <= end;\n if (isQuietTime) {\n logger.debug('message filtered due to quiet time', message);\n }\n return isQuietTime;\n};\nexport var clearMemo = function () {\n eventNameMemo = {};\n eventAttributesMemo = {};\n eventMetricsMemo = {};\n};\n// in the pinpoint console when a message is created with a Modal or Full Screen layout,\n// it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.\n// In the future, Pinpoint will be updating the layout values in the aforementioned scenario\n// to MODAL and FULL_SCREEN.\n//\n// This utility acts as a safeguard to ensure that:\n// - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked\n// outside the Pinpoint provider\n// - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated\nexport var interpretLayout = function (layout) {\n if (layout === 'MOBILE_FEED') {\n return 'MODAL';\n }\n if (layout === 'OVERLAYS') {\n return 'FULL_SCREEN';\n }\n // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value\n return layout;\n};\nexport var extractContent = function (_a) {\n var message = _a.InAppMessage;\n var _b, _c;\n return ((_c = (_b = message === null || message === void 0 ? void 0 : message.Content) === null || _b === void 0 ? void 0 : _b.map(function (content) {\n var BackgroundColor = content.BackgroundColor, BodyConfig = content.BodyConfig, HeaderConfig = content.HeaderConfig, ImageUrl = content.ImageUrl, PrimaryBtn = content.PrimaryBtn, SecondaryBtn = content.SecondaryBtn;\n var defaultPrimaryButton = PrimaryBtn === null || PrimaryBtn === void 0 ? void 0 : PrimaryBtn.DefaultConfig;\n var defaultSecondaryButton = SecondaryBtn === null || SecondaryBtn === void 0 ? void 0 : SecondaryBtn.DefaultConfig;\n var extractedContent = {};\n if (BackgroundColor) {\n extractedContent.container = {\n style: {\n backgroundColor: BackgroundColor,\n },\n };\n }\n if (HeaderConfig) {\n extractedContent.header = {\n content: HeaderConfig.Header,\n style: {\n color: HeaderConfig.TextColor,\n textAlign: HeaderConfig.Alignment.toLowerCase(),\n },\n };\n }\n if (BodyConfig) {\n extractedContent.body = {\n content: BodyConfig.Body,\n style: {\n color: BodyConfig.TextColor,\n textAlign: BodyConfig.Alignment.toLowerCase(),\n },\n };\n }\n if (ImageUrl) {\n extractedContent.image = {\n src: ImageUrl,\n };\n }\n if (defaultPrimaryButton) {\n extractedContent.primaryButton = {\n title: defaultPrimaryButton.Text,\n action: defaultPrimaryButton.ButtonAction,\n url: defaultPrimaryButton.Link,\n style: {\n backgroundColor: defaultPrimaryButton.BackgroundColor,\n borderRadius: defaultPrimaryButton.BorderRadius,\n color: defaultPrimaryButton.TextColor,\n },\n };\n }\n if (defaultSecondaryButton) {\n extractedContent.secondaryButton = {\n title: defaultSecondaryButton.Text,\n action: defaultSecondaryButton.ButtonAction,\n url: defaultSecondaryButton.Link,\n style: {\n backgroundColor: defaultSecondaryButton.BackgroundColor,\n borderRadius: defaultSecondaryButton.BorderRadius,\n color: defaultSecondaryButton.TextColor,\n },\n };\n }\n return extractedContent;\n })) !== null && _c !== void 0 ? _c : []);\n};\nexport var extractMetadata = function (_a) {\n var InAppMessage = _a.InAppMessage, Priority = _a.Priority, Schedule = _a.Schedule, TreatmentId = _a.TreatmentId;\n return ({\n customData: InAppMessage === null || InAppMessage === void 0 ? void 0 : InAppMessage.CustomConfig,\n endDate: Schedule === null || Schedule === void 0 ? void 0 : Schedule.EndDate,\n priority: Priority,\n treatmentId: TreatmentId,\n });\n};\n//# sourceMappingURL=utils.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __extends, __generator } from \"tslib\";\nimport { getInAppMessages, } from '@aws-amplify/core/internals/aws-clients/pinpoint';\nimport { addEventListener, AWSPinpointProviderCommon } from '../../../common';\nimport SessionTracker from '../../SessionTracker';\nimport { InAppMessageInteractionEvent, } from '../../types';\nimport { AWSPinpointMessageEvent, } from './types';\nimport { clearMemo, dispatchInAppMessagingEvent, extractContent, extractMetadata, getStartOfDay, interpretLayout, isBeforeEndDate, logger, matchesAttributes, matchesEventType, matchesMetrics, recordAnalyticsEvent, } from './utils';\nvar MESSAGE_DAILY_COUNT_KEY = 'pinpointProvider_inAppMessages_dailyCount';\nvar MESSAGE_TOTAL_COUNT_KEY = 'pinpointProvider_inAppMessages_totalCount';\nvar AWSPinpointProvider = /** @class */ (function (_super) {\n __extends(AWSPinpointProvider, _super);\n function AWSPinpointProvider() {\n var _this = _super.call(this, logger) || this;\n _this.configured = false;\n _this.configure = function (config) {\n if (config === void 0) { config = {}; }\n _this.config = __assign(__assign({}, _super.prototype.configure.call(_this, config)), { endpointInfo: { channelType: 'IN_APP' } });\n // some configuration steps should not be re-run even if provider is re-configured for some reason\n if (!_this.configured) {\n _this.sessionTracker = new SessionTracker(_this.sessionStateChangeHandler);\n _this.sessionTracker.start();\n // wire up default Pinpoint message event handling\n addEventListener(InAppMessageInteractionEvent.MESSAGE_DISPLAYED, function (message) {\n _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_DISPLAYED);\n });\n addEventListener(InAppMessageInteractionEvent.MESSAGE_DISMISSED, function (message) {\n _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_DISMISSED);\n });\n addEventListener(InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN, function (message) {\n _this.recordMessageEvent(message, AWSPinpointMessageEvent.MESSAGE_ACTION_TAKEN);\n });\n }\n _this.configured = true;\n dispatchInAppMessagingEvent('pinpointProvider_configured', null);\n return _this.config;\n };\n _this.getInAppMessages = function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, appId, credentials, endpointId, region, input, response, messages, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n return [4 /*yield*/, this.init()];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n // There is no way to granuarly reconcile the filter memoization as the keys are composited from a message id and\n // event properties thus opting to just clear them out when getting messages rather than leave potentially\n // obsolete entries that will no longer serve any purpose.\n clearMemo();\n _b.label = 3;\n case 3:\n _b.trys.push([3, 6, , 7]);\n return [4 /*yield*/, this.updateEndpoint()];\n case 4:\n _b.sent();\n _a = this.config, appId = _a.appId, credentials = _a.credentials, endpointId = _a.endpointId, region = _a.region;\n input = {\n ApplicationId: appId,\n EndpointId: endpointId,\n };\n this.logger.debug('getting in-app messages');\n return [4 /*yield*/, getInAppMessages({ credentials: credentials, region: region }, input)];\n case 5:\n response = _b.sent();\n messages = response.InAppMessagesResponse.InAppMessageCampaigns;\n dispatchInAppMessagingEvent('getInAppMessages', messages);\n return [2 /*return*/, messages];\n case 6:\n err_1 = _b.sent();\n this.logger.error('Error getting in-app messages', err_1);\n throw err_1;\n case 7: return [2 /*return*/];\n }\n });\n }); };\n _this.processInAppMessages = function (messages, event) { return __awaiter(_this, void 0, void 0, function () {\n var highestPrioritySeen;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, this.normalizeMessages(messages.reduce(function (acc, message) {\n var messageQualifies = matchesEventType(message, event) &&\n matchesAttributes(message, event) &&\n matchesMetrics(message, event) &&\n isBeforeEndDate(message) &&\n _this.isBelowCap(message);\n // filter all qualifying messages returning only those that are of (relative) highest priority\n if (messageQualifies) {\n // have not yet encountered message with priority\n if (!highestPrioritySeen) {\n // this message has priority, so reset the accumulator with this message only\n if (message.Priority) {\n highestPrioritySeen = message.Priority;\n return [message];\n }\n else {\n // this message also has no priority, so just add this message to accumulator\n acc.push(message);\n }\n // have previously encountered message with priority, so only messages with priority matter now\n }\n else if (message.Priority) {\n // this message has higher priority (lower number), so reset the accumulator with this message only\n if (message.Priority < highestPrioritySeen) {\n highestPrioritySeen = message.Priority;\n return [message];\n // this message has the same priority, so just add this message to accumulator\n }\n else if (message.Priority === highestPrioritySeen) {\n acc.push(message);\n }\n }\n }\n return acc;\n }, []))];\n }\n });\n }); };\n _this.sessionStateChangeHandler = function (state) {\n if (state === 'started') {\n // reset all session counts\n _this.sessionMessageCountMap = {};\n }\n };\n _this.isBelowCap = function (_a) {\n var CampaignId = _a.CampaignId, SessionCap = _a.SessionCap, DailyCap = _a.DailyCap, TotalCap = _a.TotalCap;\n var _b = _this.getMessageCounts(CampaignId), sessionCount = _b.sessionCount, dailyCount = _b.dailyCount, totalCount = _b.totalCount;\n return ((!SessionCap || sessionCount < SessionCap) &&\n (!DailyCap || dailyCount < DailyCap) &&\n (!TotalCap || totalCount < TotalCap));\n };\n // Use the current session count in memory or initialize as empty count\n _this.getSessionCount = function (messageId) {\n return _this.sessionMessageCountMap[messageId] || 0;\n };\n _this.getDailyCount = function () {\n var storage = _this.config.storage;\n var today = getStartOfDay();\n var item = storage.getItem(MESSAGE_DAILY_COUNT_KEY);\n // Parse stored count or initialize as empty count\n var counter = item\n ? JSON.parse(item)\n : { count: 0, lastCountTimestamp: today };\n // If the stored counter timestamp is today, use it as the count, otherwise reset to 0\n return counter.lastCountTimestamp === today ? counter.count : 0;\n };\n _this.getTotalCountMap = function () {\n var storage = _this.config.storage;\n var item = storage.getItem(MESSAGE_TOTAL_COUNT_KEY);\n // Parse stored count map or initialize as empty\n return item ? JSON.parse(item) : {};\n };\n _this.getTotalCount = function (messageId) {\n var countMap = _this.getTotalCountMap();\n // Return stored count or initialize as empty count\n return countMap[messageId] || 0;\n };\n _this.getMessageCounts = function (messageId) {\n try {\n return {\n sessionCount: _this.getSessionCount(messageId),\n dailyCount: _this.getDailyCount(),\n totalCount: _this.getTotalCount(messageId),\n };\n }\n catch (err) {\n _this.logger.error('Failed to get message counts from storage', err);\n }\n };\n _this.setSessionCount = function (messageId, count) {\n _this.sessionMessageCountMap[messageId] = count;\n };\n _this.setDailyCount = function (count) {\n var storage = _this.config.storage;\n var dailyCount = {\n count: count,\n lastCountTimestamp: getStartOfDay(),\n };\n try {\n storage.setItem(MESSAGE_DAILY_COUNT_KEY, JSON.stringify(dailyCount));\n }\n catch (err) {\n _this.logger.error('Failed to save daily message count to storage', err);\n }\n };\n _this.setTotalCountMap = function (countMap) {\n var storage = _this.config.storage;\n try {\n storage.setItem(MESSAGE_TOTAL_COUNT_KEY, JSON.stringify(countMap));\n }\n catch (err) {\n _this.logger.error('Failed to save total count to storage', err);\n }\n };\n _this.setTotalCount = function (messageId, count) {\n var _a;\n var updatedMap = __assign(__assign({}, _this.getTotalCountMap()), (_a = {}, _a[messageId] = count, _a));\n _this.setTotalCountMap(updatedMap);\n };\n _this.incrementCounts = function (messageId) { return __awaiter(_this, void 0, void 0, function () {\n var _a, sessionCount, dailyCount, totalCount;\n return __generator(this, function (_b) {\n _a = this.getMessageCounts(messageId), sessionCount = _a.sessionCount, dailyCount = _a.dailyCount, totalCount = _a.totalCount;\n this.setSessionCount(messageId, sessionCount + 1);\n this.setDailyCount(dailyCount + 1);\n this.setTotalCount(messageId, totalCount + 1);\n return [2 /*return*/];\n });\n }); };\n _this.normalizeMessages = function (messages) {\n return messages.map(function (message) {\n var CampaignId = message.CampaignId, InAppMessage = message.InAppMessage;\n return {\n id: CampaignId,\n content: extractContent(message),\n layout: interpretLayout(InAppMessage.Layout),\n metadata: extractMetadata(message),\n };\n });\n };\n _this.recordMessageEvent = function (message, event) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n return [4 /*yield*/, this.init()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n recordAnalyticsEvent(event, message);\n if (!(event === AWSPinpointMessageEvent.MESSAGE_DISPLAYED)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.incrementCounts(message.id)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n _this.sessionMessageCountMap = {};\n return _this;\n }\n /**\n * get the sub-category of the plugin\n */\n AWSPinpointProvider.prototype.getSubCategory = function () {\n return AWSPinpointProvider.subCategory;\n };\n AWSPinpointProvider.subCategory = 'InAppMessaging';\n return AWSPinpointProvider;\n}(AWSPinpointProviderCommon));\nexport default AWSPinpointProvider;\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { ConsoleLogger as Logger, Hub, StorageHelper, } from '@aws-amplify/core';\nimport flatten from 'lodash/flatten';\nimport { addEventListener, notifyEventListeners, } from '../common';\nimport { AWSPinpointProvider } from './Providers';\nimport { InAppMessageInteractionEvent, } from './types';\nvar STORAGE_KEY_SUFFIX = '_inAppMessages';\nvar logger = new Logger('Notifications.InAppMessaging');\nvar InAppMessaging = /** @class */ (function () {\n function InAppMessaging() {\n var _this = this;\n this.config = {};\n this.listeningForAnalyticEvents = false;\n this.pluggables = [];\n this.storageSynced = false;\n /**\n * Configure InAppMessaging\n * @param {Object} config - InAppMessaging configuration object\n */\n this.configure = function (_a) {\n if (_a === void 0) { _a = {}; }\n var _b = _a.listenForAnalyticsEvents, listenForAnalyticsEvents = _b === void 0 ? true : _b, config = __rest(_a, [\"listenForAnalyticsEvents\"]);\n _this.config = __assign(__assign({}, _this.config), config);\n logger.debug('configure InAppMessaging', _this.config);\n _this.pluggables.forEach(function (pluggable) {\n pluggable.configure(_this.config[pluggable.getProviderName()]);\n });\n if (_this.pluggables.length === 0) {\n _this.addPluggable(new AWSPinpointProvider());\n }\n if (listenForAnalyticsEvents && !_this.listeningForAnalyticEvents) {\n Hub.listen('analytics', _this.analyticsListener);\n _this.listeningForAnalyticEvents = true;\n }\n return _this.config;\n };\n /**\n * Get a plugin from added plugins\n * @param {string} providerName - the name of the plugin to get\n */\n this.getPluggable = function (providerName) {\n var _a;\n var pluggable = (_a = _this.pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; })) !== null && _a !== void 0 ? _a : null;\n if (!pluggable) {\n logger.debug(\"No plugin found with name \" + providerName);\n }\n return pluggable;\n };\n /**\n * Add plugin into InAppMessaging\n * @param {InAppMessagingProvider} pluggable - an instance of the plugin\n */\n this.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable.getCategory() === 'Notifications' &&\n pluggable.getSubCategory() === 'InAppMessaging') {\n if (_this.getPluggable(pluggable.getProviderName())) {\n throw new Error(\"Pluggable \" + pluggable.getProviderName() + \" has already been added.\");\n }\n _this.pluggables.push(pluggable);\n pluggable.configure(_this.config[pluggable.getProviderName()]);\n }\n };\n /**\n * Remove a plugin from added plugins\n * @param {string} providerName - the name of the plugin to remove\n */\n this.removePluggable = function (providerName) {\n var index = _this.pluggables.findIndex(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (index === -1) {\n logger.debug(\"No plugin found with name \" + providerName);\n }\n else {\n _this.pluggables.splice(index, 1);\n }\n };\n /**\n * Get the map resources that are currently available through the provider\n * @param {string} provider\n * @returns - Array of available map resources\n */\n this.syncMessages = function () {\n return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {\n var messages, key, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, pluggable.getInAppMessages()];\n case 1:\n messages = _a.sent();\n key = \"\" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;\n return [4 /*yield*/, this.setMessages(key, messages)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n logger.error('Failed to sync messages', err_1);\n throw err_1;\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n };\n this.clearMessages = function () {\n return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {\n var key;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = \"\" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;\n return [4 /*yield*/, this.removeMessages(key)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }));\n };\n this.dispatchEvent = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var messages, flattenedMessages;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {\n var key, messages;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n key = \"\" + pluggable.getProviderName() + STORAGE_KEY_SUFFIX;\n return [4 /*yield*/, this.getMessages(key)];\n case 1:\n messages = _a.sent();\n return [2 /*return*/, pluggable.processInAppMessages(messages, event)];\n }\n });\n }); }))];\n case 1:\n messages = _a.sent();\n flattenedMessages = flatten(messages);\n if (flattenedMessages.length) {\n notifyEventListeners(InAppMessageInteractionEvent.MESSAGE_RECEIVED, this.conflictHandler(flattenedMessages));\n }\n return [2 /*return*/];\n }\n });\n }); };\n this.identifyUser = function (userId, userInfo) {\n return Promise.all(_this.pluggables.map(function (pluggable) { return __awaiter(_this, void 0, void 0, function () {\n var err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, pluggable.identifyUser(userId, userInfo)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n err_2 = _a.sent();\n logger.error('Failed to identify user', err_2);\n throw err_2;\n case 3: return [2 /*return*/];\n }\n });\n }); }));\n };\n this.onMessageReceived = function (handler) {\n return addEventListener(InAppMessageInteractionEvent.MESSAGE_RECEIVED, handler);\n };\n this.onMessageDisplayed = function (handler) {\n return addEventListener(InAppMessageInteractionEvent.MESSAGE_DISPLAYED, handler);\n };\n this.onMessageDismissed = function (handler) {\n return addEventListener(InAppMessageInteractionEvent.MESSAGE_DISMISSED, handler);\n };\n this.onMessageActionTaken = function (handler) {\n return addEventListener(InAppMessageInteractionEvent.MESSAGE_ACTION_TAKEN, handler);\n };\n this.notifyMessageInteraction = function (message, type) {\n notifyEventListeners(type, message);\n };\n this.setConflictHandler = function (handler) {\n _this.conflictHandler = handler;\n };\n this.analyticsListener = function (_a) {\n var payload = _a.payload;\n var event = payload.event, data = payload.data;\n switch (event) {\n case 'record': {\n _this.dispatchEvent(data);\n break;\n }\n default:\n break;\n }\n };\n this.syncStorage = function () { return __awaiter(_this, void 0, void 0, function () {\n var storage, err_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n storage = this.config.storage;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n if (!(typeof storage.sync === 'function')) return [3 /*break*/, 3];\n return [4 /*yield*/, storage.sync()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n this.storageSynced = true;\n return [3 /*break*/, 5];\n case 4:\n err_3 = _a.sent();\n logger.error('Failed to sync storage', err_3);\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n this.getMessages = function (key) { return __awaiter(_this, void 0, void 0, function () {\n var storage, storedMessages, err_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!!this.storageSynced) return [3 /*break*/, 2];\n return [4 /*yield*/, this.syncStorage()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n storage = this.config.storage;\n storedMessages = storage.getItem(key);\n return [2 /*return*/, storedMessages ? JSON.parse(storedMessages) : []];\n case 3:\n err_4 = _a.sent();\n logger.error('Failed to retrieve in-app messages from storage', err_4);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.setMessages = function (key, messages) { return __awaiter(_this, void 0, void 0, function () {\n var storage, err_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!messages) {\n return [2 /*return*/];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n if (!!this.storageSynced) return [3 /*break*/, 3];\n return [4 /*yield*/, this.syncStorage()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n storage = this.config.storage;\n storage.setItem(key, JSON.stringify(messages));\n return [3 /*break*/, 5];\n case 4:\n err_5 = _a.sent();\n logger.error('Failed to store in-app messages', err_5);\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n this.removeMessages = function (key) { return __awaiter(_this, void 0, void 0, function () {\n var storage, err_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!!this.storageSynced) return [3 /*break*/, 2];\n return [4 /*yield*/, this.syncStorage()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n storage = this.config.storage;\n storage.removeItem(key);\n return [3 /*break*/, 4];\n case 3:\n err_6 = _a.sent();\n logger.error('Failed to remove in-app messages from storage', err_6);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.defaultConflictHandler = function (messages) {\n // default behavior is to return the message closest to expiry\n // this function assumes that messages processed by providers already filters out expired messages\n var sorted = messages.sort(function (a, b) {\n var _a, _b;\n var endDateA = (_a = a.metadata) === null || _a === void 0 ? void 0 : _a.endDate;\n var endDateB = (_b = b.metadata) === null || _b === void 0 ? void 0 : _b.endDate;\n // if both message end dates are falsy or have the same date string, treat them as equal\n if (endDateA === endDateB) {\n return 0;\n }\n // if only message A has an end date, treat it as closer to expiry\n if (endDateA && !endDateB) {\n return -1;\n }\n // if only message B has an end date, treat it as closer to expiry\n if (!endDateA && endDateB) {\n return 1;\n }\n // otherwise, compare them\n return new Date(endDateA) < new Date(endDateB) ? -1 : 1;\n });\n // always return the top sorted\n return sorted[0];\n };\n this.config = { storage: new StorageHelper().getStorage() };\n this.setConflictHandler(this.defaultConflictHandler);\n }\n /**\n * Get the name of this module\n * @returns {string} name of this module\n */\n InAppMessaging.prototype.getModuleName = function () {\n return 'InAppMessaging';\n };\n return InAppMessaging;\n}());\nexport default InAppMessaging;\n//# sourceMappingURL=InAppMessaging.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __extends } from \"tslib\";\nvar PlatformNotSupportedError = /** @class */ (function (_super) {\n __extends(PlatformNotSupportedError, _super);\n function PlatformNotSupportedError() {\n var _this = _super.call(this, 'Function not supported on current platform') || this;\n _this.name = 'PlatformNotSupportedError';\n return _this;\n }\n return PlatformNotSupportedError;\n}(Error));\nexport default PlatformNotSupportedError;\n//# sourceMappingURL=PlatformNotSupportedError.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport PlatformNotSupportedError from './PlatformNotSupportedError';\nvar PushNotification = /** @class */ (function () {\n function PushNotification() {\n var _this = this;\n /**\n * Configure PushNotification\n * @param {Object} config - PushNotification configuration object\n */\n this.configure = function (_) {\n if (_ === void 0) { _ = {}; }\n throw new PlatformNotSupportedError();\n };\n /**\n * Get a plugin from added plugins\n * @param {string} providerName - the name of the plugin to get\n */\n this.getPluggable = function (_) {\n throw new PlatformNotSupportedError();\n };\n /**\n * Add plugin into PushNotification\n * @param {PushNotificationProvider} pluggable - an instance of the plugin\n */\n this.addPluggable = function (_) {\n throw new PlatformNotSupportedError();\n };\n /**\n * Remove a plugin from added plugins\n * @param {string} providerName - the name of the plugin to remove\n */\n this.removePluggable = function () {\n throw new PlatformNotSupportedError();\n };\n this.enable = function () {\n throw new PlatformNotSupportedError();\n };\n this.identifyUser = function () {\n throw new PlatformNotSupportedError();\n };\n this.getLaunchNotification = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new PlatformNotSupportedError();\n });\n }); };\n this.getBadgeCount = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new PlatformNotSupportedError();\n });\n }); };\n this.setBadgeCount = function (_) {\n throw new PlatformNotSupportedError();\n };\n this.getPermissionStatus = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new PlatformNotSupportedError();\n });\n }); };\n this.requestPermissions = function (_) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new PlatformNotSupportedError();\n });\n }); };\n this.onNotificationReceivedInBackground = function (_) {\n throw new PlatformNotSupportedError();\n };\n this.onNotificationReceivedInForeground = function (_) {\n throw new PlatformNotSupportedError();\n };\n this.onTokenReceived = function (_) {\n throw new PlatformNotSupportedError();\n };\n this.onNotificationOpened = function (_) {\n throw new PlatformNotSupportedError();\n };\n }\n /**\n * Get the name of this module\n * @returns {string} name of this module\n */\n PushNotification.prototype.getModuleName = function () {\n throw new PlatformNotSupportedError();\n };\n return PushNotification;\n}());\nexport default PushNotification;\n//# sourceMappingURL=PushNotification.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __assign, __awaiter, __generator } from \"tslib\";\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nimport InAppMessagingClass from './InAppMessaging';\nimport PushNotificationClass from './PushNotification';\nvar logger = new Logger('Notifications');\nvar NotificationsClass = /** @class */ (function () {\n function NotificationsClass() {\n var _this = this;\n this.config = {};\n /**\n * Configure Notifications\n * @param {Object} config - Notifications configuration object\n */\n this.configure = function (_a) {\n var config = (_a === void 0 ? {} : _a).Notifications;\n _this.config = __assign(__assign({}, _this.config), config);\n logger.debug('configure Notifications', config);\n // Configure sub-categories\n _this.inAppMessaging.configure(_this.config.InAppMessaging);\n if (_this.config.Push) {\n try {\n // only instantiate once\n if (!_this.pushNotification) {\n _this.pushNotification = new PushNotificationClass();\n }\n _this.pushNotification.configure(_this.config.Push);\n }\n catch (err) {\n logger.error(err);\n }\n }\n return _this.config;\n };\n this.identifyUser = function (userId, userInfo) {\n var identifyFunctions = [];\n if (_this.inAppMessaging) {\n identifyFunctions.push(_this.inAppMessaging.identifyUser);\n }\n if (_this.pushNotification) {\n identifyFunctions.push(_this.pushNotification.identifyUser);\n }\n return Promise.all(identifyFunctions.map(function (identifyFunction) { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, identifyFunction(userId, userInfo)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n logger.error('Failed to identify user', err_1);\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n }); }));\n };\n this.inAppMessaging = new InAppMessagingClass();\n }\n /**\n * Get the name of the module category\n * @returns {string} name of the module category\n */\n NotificationsClass.prototype.getModuleName = function () {\n return 'Notifications';\n };\n Object.defineProperty(NotificationsClass.prototype, \"InAppMessaging\", {\n get: function () {\n return this.inAppMessaging;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NotificationsClass.prototype, \"Push\", {\n get: function () {\n var _a;\n return (_a = this.pushNotification) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: true,\n configurable: true\n });\n return NotificationsClass;\n}());\nvar Notifications = new NotificationsClass();\nexport default Notifications;\nAmplify.register(Notifications);\n//# sourceMappingURL=Notifications.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread } from \"tslib\";\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Predictions');\nvar PredictionsClass = /** @class */ (function () {\n /**\n * Initialize Predictions with AWS configurations\n * @param {PredictionsOptions} options - Configuration object for Predictions\n */\n function PredictionsClass(options) {\n this._options = options;\n this._convertPluggables = [];\n this._identifyPluggables = [];\n this._interpretPluggables = [];\n }\n PredictionsClass.prototype.getModuleName = function () {\n return 'Predictions';\n };\n /**\n * add plugin/pluggable into Predictions category\n * @param {Object} pluggable - an instance of the plugin/pluggable\n **/\n PredictionsClass.prototype.addPluggable = function (pluggable) {\n if (this.getPluggable(pluggable.getProviderName())) {\n throw new Error(\"Pluggable with name \" + pluggable.getProviderName() + \" has already been added.\");\n }\n var pluggableAdded = false;\n if (this.implementsConvertPluggable(pluggable)) {\n this._convertPluggables.push(pluggable);\n pluggableAdded = true;\n }\n if (this.implementsIdentifyPluggable(pluggable)) {\n this._identifyPluggables.push(pluggable);\n pluggableAdded = true;\n }\n if (this.implementsInterpretPluggable(pluggable)) {\n this._interpretPluggables.push(pluggable);\n pluggableAdded = true;\n }\n if (pluggableAdded) {\n this.configurePluggable(pluggable);\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n PredictionsClass.prototype.getPluggable = function (providerName) {\n var pluggable = this.getAllProviders().find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName=>', providerName);\n return null;\n }\n else\n return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n PredictionsClass.prototype.removePluggable = function (providerName) {\n this._convertPluggables = this._convertPluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n this._identifyPluggables = this._identifyPluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n this._interpretPluggables = this._interpretPluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n return;\n };\n /**\n * To make both top level providers and category level providers work with same interface and configuration\n * this method duplicates Predictions config into parent level config (for top level provider) and\n * category level config (such as convert, identify etc) and pass both to each provider.\n */\n PredictionsClass.prototype.configure = function (options) {\n var _this = this;\n var predictionsConfig = options ? options.predictions || options : {};\n predictionsConfig = __assign(__assign({}, predictionsConfig), options);\n this._options = Object.assign({}, this._options, predictionsConfig);\n logger.debug('configure Predictions', this._options);\n this.getAllProviders().forEach(function (pluggable) {\n return _this.configurePluggable(pluggable);\n });\n };\n PredictionsClass.prototype.interpret = function (input, options) {\n var pluggableToExecute = this.getPluggableToExecute(this._interpretPluggables, options);\n return pluggableToExecute.interpret(input);\n };\n PredictionsClass.prototype.convert = function (input, options) {\n var pluggableToExecute = this.getPluggableToExecute(this._convertPluggables, options);\n return pluggableToExecute.convert(input);\n };\n PredictionsClass.prototype.identify = function (input, options) {\n var pluggableToExecute = this.getPluggableToExecute(this._identifyPluggables, options);\n return pluggableToExecute.identify(input);\n };\n // tslint:disable-next-line: max-line-length\n PredictionsClass.prototype.getPluggableToExecute = function (pluggables, providerOptions) {\n // Give preference to provider name first since it is more specific to this call, even if\n // there is only one provider configured to error out if the name provided is not the one matched.\n if (providerOptions && providerOptions.providerName) {\n return __spread(pluggables).find(function (pluggable) {\n return pluggable.getProviderName() === providerOptions.providerName;\n });\n }\n else {\n if (pluggables.length === 1) {\n return pluggables[0];\n }\n else {\n throw new Error('More than one or no providers are configured, ' +\n 'Either specify a provider name or configure exactly one provider');\n }\n }\n };\n PredictionsClass.prototype.getAllProviders = function () {\n return __spread(this._convertPluggables, this._identifyPluggables, this._interpretPluggables);\n };\n PredictionsClass.prototype.configurePluggable = function (pluggable) {\n var categoryConfig = Object.assign({}, this._options['predictions'], // Parent predictions config for the top level provider\n this._options[pluggable.getCategory().toLowerCase()] // Actual category level config\n );\n pluggable.configure(categoryConfig);\n };\n PredictionsClass.prototype.implementsConvertPluggable = function (obj) {\n return obj && typeof obj.convert === 'function';\n };\n PredictionsClass.prototype.implementsIdentifyPluggable = function (obj) {\n return obj && typeof obj.identify === 'function';\n };\n PredictionsClass.prototype.implementsInterpretPluggable = function (obj) {\n return obj && typeof obj.interpret === 'function';\n };\n return PredictionsClass;\n}());\nexport { PredictionsClass };\nexport var Predictions = new PredictionsClass({});\nAmplify.register(Predictions);\n//# sourceMappingURL=Predictions.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from '../Logger';\nvar logger = new Logger('I18n');\n/**\n * Language transition class\n */\nvar I18n = /** @class */ (function () {\n /**\n * @constructor\n * Initialize with configurations\n * @param {Object} options\n */\n function I18n(options) {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n this._options = Object.assign({}, options);\n this._lang = this._options.language;\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.prototype.setLanguage = function (lang) {\n this._lang = lang;\n };\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.prototype.get = function (key, defVal) {\n if (defVal === void 0) { defVal = undefined; }\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n var lang = this._lang;\n var val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n };\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n I18n.prototype.getByLanguage = function (key, language, defVal) {\n if (defVal === void 0) { defVal = null; }\n if (!language) {\n return defVal;\n }\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n return defVal;\n }\n return lang_dict[key];\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) {\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n lang_dict = this._dict[language] = {};\n }\n this._dict[language] = __assign(__assign({}, lang_dict), vocabularies);\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.prototype.putVocabularies = function (vocabularies) {\n var _this = this;\n Object.keys(vocabularies).map(function (key) {\n _this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n };\n return I18n;\n}());\nexport { I18n };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { I18n as I18nClass } from './I18n';\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { Amplify } from '../Amplify';\nvar logger = new Logger('I18n');\nvar _config = null;\nvar _i18n = null;\n/**\n * Export I18n APIs\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n }\n /**\n * @static\n * @method\n * Configure I18n part\n * @param {Object} config - Configuration of the I18n\n */\n I18n.configure = function (config) {\n logger.debug('configure I18n');\n if (!config) {\n return _config;\n }\n _config = Object.assign({}, _config, config.I18n || config);\n I18n.createInstance();\n return _config;\n };\n I18n.getModuleName = function () {\n return 'I18n';\n };\n /**\n * @static\n * @method\n * Create an instance of I18n for the library\n */\n I18n.createInstance = function () {\n logger.debug('create I18n instance');\n if (_i18n) {\n return;\n }\n _i18n = new I18nClass(_config);\n };\n /**\n * @static @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.setLanguage = function (lang) {\n I18n.checkConfig();\n return _i18n.setLanguage(lang);\n };\n /**\n * @static @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.get = function (key, defVal) {\n if (!I18n.checkConfig()) {\n return typeof defVal === 'undefined' ? key : defVal;\n }\n return _i18n.get(key, defVal);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {String} langurage - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.putVocabulariesForLanguage = function (language, vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabulariesForLanguage(language, vocabularies);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.putVocabularies = function (vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabularies(vocabularies);\n };\n I18n.checkConfig = function () {\n if (!_i18n) {\n _i18n = new I18nClass(_config);\n }\n return true;\n };\n return I18n;\n}());\nexport { I18n };\nAmplify.register(I18n);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { Amplify } from '../Amplify';\n/**\n * Provides a means to registering a service worker in the browser\n * and communicating with it via postMessage events.\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/\n *\n * postMessage events are currently not supported in all browsers. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n *\n * At the minmum this class will register the service worker and listen\n * and attempt to dispatch messages on state change and record analytics\n * events based on the service worker lifecycle.\n */\nvar ServiceWorkerClass = /** @class */ (function () {\n function ServiceWorkerClass() {\n // The AWS Amplify logger\n this._logger = new Logger('ServiceWorker');\n }\n Object.defineProperty(ServiceWorkerClass.prototype, \"serviceWorker\", {\n /**\n * Get the currently active service worker\n */\n get: function () {\n return this._serviceWorker;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Register the service-worker.js file in the browser\n * Make sure the service-worker.js is part of the build\n * for example with Angular, modify the angular-cli.json file\n * and add to \"assets\" array \"service-worker.js\"\n * @param {string} - (optional) Service worker file. Defaults to \"/service-worker.js\"\n * @param {string} - (optional) The service worker scope. Defaults to \"/\"\n * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register\n * @returns {Promise}\n *\t- resolve(ServiceWorkerRegistration)\n *\t- reject(Error)\n **/\n ServiceWorkerClass.prototype.register = function (filePath, scope) {\n var _this = this;\n if (filePath === void 0) { filePath = '/service-worker.js'; }\n if (scope === void 0) { scope = '/'; }\n this._logger.debug(\"registering \".concat(filePath));\n this._logger.debug(\"registering service worker with scope \".concat(scope));\n return new Promise(function (resolve, reject) {\n if (navigator && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register(filePath, {\n scope: scope,\n })\n .then(function (registration) {\n if (registration.installing) {\n _this._serviceWorker = registration.installing;\n }\n else if (registration.waiting) {\n _this._serviceWorker = registration.waiting;\n }\n else if (registration.active) {\n _this._serviceWorker = registration.active;\n }\n _this._registration = registration;\n _this._setupListeners();\n _this._logger.debug(\"Service Worker Registration Success: \".concat(registration));\n return resolve(registration);\n })\n .catch(function (error) {\n _this._logger.debug(\"Service Worker Registration Failed \".concat(error));\n return reject(error);\n });\n }\n else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Enable web push notifications. If not subscribed, a new subscription will\n * be created and registered.\n * \tTest Push Server: https://web-push-codelab.glitch.me/\n * \tPush Server Libraries: https://github.com/web-push-libs/\n * \tAPI Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/\n * @param publicKey\n * @returns {Promise}\n * \t- resolve(PushSubscription)\n * - reject(Error)\n */\n ServiceWorkerClass.prototype.enablePush = function (publicKey) {\n var _this = this;\n if (!this._registration)\n throw new Error('Service Worker not registered');\n this._publicKey = publicKey;\n return new Promise(function (resolve, reject) {\n if (browserOrNode().isBrowser) {\n _this._registration.pushManager.getSubscription().then(function (subscription) {\n if (subscription) {\n _this._subscription = subscription;\n _this._logger.debug(\"User is subscribed to push: \".concat(JSON.stringify(subscription)));\n resolve(subscription);\n }\n else {\n _this._logger.debug(\"User is NOT subscribed to push\");\n return _this._registration.pushManager\n .subscribe({\n userVisibleOnly: true,\n applicationServerKey: _this._urlB64ToUint8Array(publicKey),\n })\n .then(function (subscription) {\n _this._subscription = subscription;\n _this._logger.debug(\"User subscribed: \".concat(JSON.stringify(subscription)));\n resolve(subscription);\n })\n .catch(function (error) {\n _this._logger.error(error);\n });\n }\n });\n }\n else {\n return reject(new Error('Service Worker not available'));\n }\n });\n };\n /**\n * Convert a base64 encoded string to a Uint8 array for the push server key\n * @param base64String\n */\n ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) {\n var padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n var base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n var rawData = window.atob(base64);\n var outputArray = new Uint8Array(rawData.length);\n for (var i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n };\n /**\n * Send a message to the service worker. The service worker needs\n * to implement `self.addEventListener('message') to handle the\n * message. This ***currently*** does not work in Safari or IE.\n * @param {object | string} - An arbitrary JSON object or string message to send to the service worker\n *\t- see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable\n * @returns {Promise}\n **/\n ServiceWorkerClass.prototype.send = function (message) {\n if (this._serviceWorker) {\n this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);\n }\n };\n /**\n * Listen for service worker state change and message events\n * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state\n **/\n ServiceWorkerClass.prototype._setupListeners = function () {\n var _this = this;\n this._serviceWorker.addEventListener('statechange', function (event) {\n var currentState = _this._serviceWorker.state;\n _this._logger.debug(\"ServiceWorker statechange: \".concat(currentState));\n if (Amplify.Analytics && typeof Amplify.Analytics.record === 'function') {\n Amplify.Analytics.record({\n name: 'ServiceWorker',\n attributes: {\n state: currentState,\n },\n });\n }\n });\n this._serviceWorker.addEventListener('message', function (event) {\n _this._logger.debug(\"ServiceWorker message event: \".concat(event));\n });\n };\n return ServiceWorkerClass;\n}());\nexport { ServiceWorkerClass };\n","import { __assign } from \"tslib\";\nexport var AssociateKmsKeyRequest;\n(function (AssociateKmsKeyRequest) {\n AssociateKmsKeyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AssociateKmsKeyRequest || (AssociateKmsKeyRequest = {}));\nexport var InvalidParameterException;\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidParameterException || (InvalidParameterException = {}));\nexport var OperationAbortedException;\n(function (OperationAbortedException) {\n OperationAbortedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OperationAbortedException || (OperationAbortedException = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var ServiceUnavailableException;\n(function (ServiceUnavailableException) {\n ServiceUnavailableException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ServiceUnavailableException || (ServiceUnavailableException = {}));\nexport var CancelExportTaskRequest;\n(function (CancelExportTaskRequest) {\n CancelExportTaskRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CancelExportTaskRequest || (CancelExportTaskRequest = {}));\nexport var InvalidOperationException;\n(function (InvalidOperationException) {\n InvalidOperationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidOperationException || (InvalidOperationException = {}));\nexport var CreateExportTaskRequest;\n(function (CreateExportTaskRequest) {\n CreateExportTaskRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateExportTaskRequest || (CreateExportTaskRequest = {}));\nexport var CreateExportTaskResponse;\n(function (CreateExportTaskResponse) {\n CreateExportTaskResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateExportTaskResponse || (CreateExportTaskResponse = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var ResourceAlreadyExistsException;\n(function (ResourceAlreadyExistsException) {\n ResourceAlreadyExistsException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceAlreadyExistsException || (ResourceAlreadyExistsException = {}));\nexport var CreateLogGroupRequest;\n(function (CreateLogGroupRequest) {\n CreateLogGroupRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateLogGroupRequest || (CreateLogGroupRequest = {}));\nexport var CreateLogStreamRequest;\n(function (CreateLogStreamRequest) {\n CreateLogStreamRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateLogStreamRequest || (CreateLogStreamRequest = {}));\nexport var DataAlreadyAcceptedException;\n(function (DataAlreadyAcceptedException) {\n DataAlreadyAcceptedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DataAlreadyAcceptedException || (DataAlreadyAcceptedException = {}));\nexport var DeleteDestinationRequest;\n(function (DeleteDestinationRequest) {\n DeleteDestinationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteDestinationRequest || (DeleteDestinationRequest = {}));\nexport var DeleteLogGroupRequest;\n(function (DeleteLogGroupRequest) {\n DeleteLogGroupRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteLogGroupRequest || (DeleteLogGroupRequest = {}));\nexport var DeleteLogStreamRequest;\n(function (DeleteLogStreamRequest) {\n DeleteLogStreamRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteLogStreamRequest || (DeleteLogStreamRequest = {}));\nexport var DeleteMetricFilterRequest;\n(function (DeleteMetricFilterRequest) {\n DeleteMetricFilterRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMetricFilterRequest || (DeleteMetricFilterRequest = {}));\nexport var DeleteQueryDefinitionRequest;\n(function (DeleteQueryDefinitionRequest) {\n DeleteQueryDefinitionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteQueryDefinitionRequest || (DeleteQueryDefinitionRequest = {}));\nexport var DeleteQueryDefinitionResponse;\n(function (DeleteQueryDefinitionResponse) {\n DeleteQueryDefinitionResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteQueryDefinitionResponse || (DeleteQueryDefinitionResponse = {}));\nexport var DeleteResourcePolicyRequest;\n(function (DeleteResourcePolicyRequest) {\n DeleteResourcePolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteResourcePolicyRequest || (DeleteResourcePolicyRequest = {}));\nexport var DeleteRetentionPolicyRequest;\n(function (DeleteRetentionPolicyRequest) {\n DeleteRetentionPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteRetentionPolicyRequest || (DeleteRetentionPolicyRequest = {}));\nexport var DeleteSubscriptionFilterRequest;\n(function (DeleteSubscriptionFilterRequest) {\n DeleteSubscriptionFilterRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteSubscriptionFilterRequest || (DeleteSubscriptionFilterRequest = {}));\nexport var DescribeDestinationsRequest;\n(function (DescribeDestinationsRequest) {\n DescribeDestinationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeDestinationsRequest || (DescribeDestinationsRequest = {}));\nexport var Destination;\n(function (Destination) {\n Destination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Destination || (Destination = {}));\nexport var DescribeDestinationsResponse;\n(function (DescribeDestinationsResponse) {\n DescribeDestinationsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeDestinationsResponse || (DescribeDestinationsResponse = {}));\nexport var ExportTaskStatusCode;\n(function (ExportTaskStatusCode) {\n ExportTaskStatusCode[\"CANCELLED\"] = \"CANCELLED\";\n ExportTaskStatusCode[\"COMPLETED\"] = \"COMPLETED\";\n ExportTaskStatusCode[\"FAILED\"] = \"FAILED\";\n ExportTaskStatusCode[\"PENDING\"] = \"PENDING\";\n ExportTaskStatusCode[\"PENDING_CANCEL\"] = \"PENDING_CANCEL\";\n ExportTaskStatusCode[\"RUNNING\"] = \"RUNNING\";\n})(ExportTaskStatusCode || (ExportTaskStatusCode = {}));\nexport var DescribeExportTasksRequest;\n(function (DescribeExportTasksRequest) {\n DescribeExportTasksRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeExportTasksRequest || (DescribeExportTasksRequest = {}));\nexport var ExportTaskExecutionInfo;\n(function (ExportTaskExecutionInfo) {\n ExportTaskExecutionInfo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExportTaskExecutionInfo || (ExportTaskExecutionInfo = {}));\nexport var ExportTaskStatus;\n(function (ExportTaskStatus) {\n ExportTaskStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExportTaskStatus || (ExportTaskStatus = {}));\nexport var ExportTask;\n(function (ExportTask) {\n ExportTask.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExportTask || (ExportTask = {}));\nexport var DescribeExportTasksResponse;\n(function (DescribeExportTasksResponse) {\n DescribeExportTasksResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeExportTasksResponse || (DescribeExportTasksResponse = {}));\nexport var DescribeLogGroupsRequest;\n(function (DescribeLogGroupsRequest) {\n DescribeLogGroupsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLogGroupsRequest || (DescribeLogGroupsRequest = {}));\nexport var LogGroup;\n(function (LogGroup) {\n LogGroup.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LogGroup || (LogGroup = {}));\nexport var DescribeLogGroupsResponse;\n(function (DescribeLogGroupsResponse) {\n DescribeLogGroupsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLogGroupsResponse || (DescribeLogGroupsResponse = {}));\nexport var OrderBy;\n(function (OrderBy) {\n OrderBy[\"LastEventTime\"] = \"LastEventTime\";\n OrderBy[\"LogStreamName\"] = \"LogStreamName\";\n})(OrderBy || (OrderBy = {}));\nexport var DescribeLogStreamsRequest;\n(function (DescribeLogStreamsRequest) {\n DescribeLogStreamsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLogStreamsRequest || (DescribeLogStreamsRequest = {}));\nexport var LogStream;\n(function (LogStream) {\n LogStream.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LogStream || (LogStream = {}));\nexport var DescribeLogStreamsResponse;\n(function (DescribeLogStreamsResponse) {\n DescribeLogStreamsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeLogStreamsResponse || (DescribeLogStreamsResponse = {}));\nexport var DescribeMetricFiltersRequest;\n(function (DescribeMetricFiltersRequest) {\n DescribeMetricFiltersRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeMetricFiltersRequest || (DescribeMetricFiltersRequest = {}));\nexport var MetricTransformation;\n(function (MetricTransformation) {\n MetricTransformation.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricTransformation || (MetricTransformation = {}));\nexport var MetricFilter;\n(function (MetricFilter) {\n MetricFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricFilter || (MetricFilter = {}));\nexport var DescribeMetricFiltersResponse;\n(function (DescribeMetricFiltersResponse) {\n DescribeMetricFiltersResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeMetricFiltersResponse || (DescribeMetricFiltersResponse = {}));\nexport var QueryStatus;\n(function (QueryStatus) {\n QueryStatus[\"Cancelled\"] = \"Cancelled\";\n QueryStatus[\"Complete\"] = \"Complete\";\n QueryStatus[\"Failed\"] = \"Failed\";\n QueryStatus[\"Running\"] = \"Running\";\n QueryStatus[\"Scheduled\"] = \"Scheduled\";\n})(QueryStatus || (QueryStatus = {}));\nexport var DescribeQueriesRequest;\n(function (DescribeQueriesRequest) {\n DescribeQueriesRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeQueriesRequest || (DescribeQueriesRequest = {}));\nexport var QueryInfo;\n(function (QueryInfo) {\n QueryInfo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueryInfo || (QueryInfo = {}));\nexport var DescribeQueriesResponse;\n(function (DescribeQueriesResponse) {\n DescribeQueriesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeQueriesResponse || (DescribeQueriesResponse = {}));\nexport var DescribeQueryDefinitionsRequest;\n(function (DescribeQueryDefinitionsRequest) {\n DescribeQueryDefinitionsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeQueryDefinitionsRequest || (DescribeQueryDefinitionsRequest = {}));\nexport var QueryDefinition;\n(function (QueryDefinition) {\n QueryDefinition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueryDefinition || (QueryDefinition = {}));\nexport var DescribeQueryDefinitionsResponse;\n(function (DescribeQueryDefinitionsResponse) {\n DescribeQueryDefinitionsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeQueryDefinitionsResponse || (DescribeQueryDefinitionsResponse = {}));\nexport var DescribeResourcePoliciesRequest;\n(function (DescribeResourcePoliciesRequest) {\n DescribeResourcePoliciesRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeResourcePoliciesRequest || (DescribeResourcePoliciesRequest = {}));\nexport var ResourcePolicy;\n(function (ResourcePolicy) {\n ResourcePolicy.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourcePolicy || (ResourcePolicy = {}));\nexport var DescribeResourcePoliciesResponse;\n(function (DescribeResourcePoliciesResponse) {\n DescribeResourcePoliciesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeResourcePoliciesResponse || (DescribeResourcePoliciesResponse = {}));\nexport var DescribeSubscriptionFiltersRequest;\n(function (DescribeSubscriptionFiltersRequest) {\n DescribeSubscriptionFiltersRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeSubscriptionFiltersRequest || (DescribeSubscriptionFiltersRequest = {}));\nexport var Distribution;\n(function (Distribution) {\n Distribution[\"ByLogStream\"] = \"ByLogStream\";\n Distribution[\"Random\"] = \"Random\";\n})(Distribution || (Distribution = {}));\nexport var SubscriptionFilter;\n(function (SubscriptionFilter) {\n SubscriptionFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SubscriptionFilter || (SubscriptionFilter = {}));\nexport var DescribeSubscriptionFiltersResponse;\n(function (DescribeSubscriptionFiltersResponse) {\n DescribeSubscriptionFiltersResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeSubscriptionFiltersResponse || (DescribeSubscriptionFiltersResponse = {}));\nexport var DisassociateKmsKeyRequest;\n(function (DisassociateKmsKeyRequest) {\n DisassociateKmsKeyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DisassociateKmsKeyRequest || (DisassociateKmsKeyRequest = {}));\nexport var FilteredLogEvent;\n(function (FilteredLogEvent) {\n FilteredLogEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilteredLogEvent || (FilteredLogEvent = {}));\nexport var FilterLogEventsRequest;\n(function (FilterLogEventsRequest) {\n FilterLogEventsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilterLogEventsRequest || (FilterLogEventsRequest = {}));\nexport var SearchedLogStream;\n(function (SearchedLogStream) {\n SearchedLogStream.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SearchedLogStream || (SearchedLogStream = {}));\nexport var FilterLogEventsResponse;\n(function (FilterLogEventsResponse) {\n FilterLogEventsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilterLogEventsResponse || (FilterLogEventsResponse = {}));\nexport var GetLogEventsRequest;\n(function (GetLogEventsRequest) {\n GetLogEventsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogEventsRequest || (GetLogEventsRequest = {}));\nexport var OutputLogEvent;\n(function (OutputLogEvent) {\n OutputLogEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OutputLogEvent || (OutputLogEvent = {}));\nexport var GetLogEventsResponse;\n(function (GetLogEventsResponse) {\n GetLogEventsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogEventsResponse || (GetLogEventsResponse = {}));\nexport var GetLogGroupFieldsRequest;\n(function (GetLogGroupFieldsRequest) {\n GetLogGroupFieldsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogGroupFieldsRequest || (GetLogGroupFieldsRequest = {}));\nexport var LogGroupField;\n(function (LogGroupField) {\n LogGroupField.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LogGroupField || (LogGroupField = {}));\nexport var GetLogGroupFieldsResponse;\n(function (GetLogGroupFieldsResponse) {\n GetLogGroupFieldsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogGroupFieldsResponse || (GetLogGroupFieldsResponse = {}));\nexport var GetLogRecordRequest;\n(function (GetLogRecordRequest) {\n GetLogRecordRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogRecordRequest || (GetLogRecordRequest = {}));\nexport var GetLogRecordResponse;\n(function (GetLogRecordResponse) {\n GetLogRecordResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetLogRecordResponse || (GetLogRecordResponse = {}));\nexport var GetQueryResultsRequest;\n(function (GetQueryResultsRequest) {\n GetQueryResultsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetQueryResultsRequest || (GetQueryResultsRequest = {}));\nexport var ResultField;\n(function (ResultField) {\n ResultField.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResultField || (ResultField = {}));\nexport var QueryStatistics;\n(function (QueryStatistics) {\n QueryStatistics.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueryStatistics || (QueryStatistics = {}));\nexport var GetQueryResultsResponse;\n(function (GetQueryResultsResponse) {\n GetQueryResultsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetQueryResultsResponse || (GetQueryResultsResponse = {}));\nexport var InputLogEvent;\n(function (InputLogEvent) {\n InputLogEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InputLogEvent || (InputLogEvent = {}));\nexport var InvalidSequenceTokenException;\n(function (InvalidSequenceTokenException) {\n InvalidSequenceTokenException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidSequenceTokenException || (InvalidSequenceTokenException = {}));\nexport var ListTagsLogGroupRequest;\n(function (ListTagsLogGroupRequest) {\n ListTagsLogGroupRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsLogGroupRequest || (ListTagsLogGroupRequest = {}));\nexport var ListTagsLogGroupResponse;\n(function (ListTagsLogGroupResponse) {\n ListTagsLogGroupResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsLogGroupResponse || (ListTagsLogGroupResponse = {}));\nexport var PutDestinationRequest;\n(function (PutDestinationRequest) {\n PutDestinationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutDestinationRequest || (PutDestinationRequest = {}));\nexport var PutDestinationResponse;\n(function (PutDestinationResponse) {\n PutDestinationResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutDestinationResponse || (PutDestinationResponse = {}));\nexport var PutDestinationPolicyRequest;\n(function (PutDestinationPolicyRequest) {\n PutDestinationPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutDestinationPolicyRequest || (PutDestinationPolicyRequest = {}));\nexport var PutLogEventsRequest;\n(function (PutLogEventsRequest) {\n PutLogEventsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutLogEventsRequest || (PutLogEventsRequest = {}));\nexport var RejectedLogEventsInfo;\n(function (RejectedLogEventsInfo) {\n RejectedLogEventsInfo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RejectedLogEventsInfo || (RejectedLogEventsInfo = {}));\nexport var PutLogEventsResponse;\n(function (PutLogEventsResponse) {\n PutLogEventsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutLogEventsResponse || (PutLogEventsResponse = {}));\nexport var UnrecognizedClientException;\n(function (UnrecognizedClientException) {\n UnrecognizedClientException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnrecognizedClientException || (UnrecognizedClientException = {}));\nexport var PutMetricFilterRequest;\n(function (PutMetricFilterRequest) {\n PutMetricFilterRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutMetricFilterRequest || (PutMetricFilterRequest = {}));\nexport var PutQueryDefinitionRequest;\n(function (PutQueryDefinitionRequest) {\n PutQueryDefinitionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutQueryDefinitionRequest || (PutQueryDefinitionRequest = {}));\nexport var PutQueryDefinitionResponse;\n(function (PutQueryDefinitionResponse) {\n PutQueryDefinitionResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutQueryDefinitionResponse || (PutQueryDefinitionResponse = {}));\nexport var PutResourcePolicyRequest;\n(function (PutResourcePolicyRequest) {\n PutResourcePolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutResourcePolicyRequest || (PutResourcePolicyRequest = {}));\nexport var PutResourcePolicyResponse;\n(function (PutResourcePolicyResponse) {\n PutResourcePolicyResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutResourcePolicyResponse || (PutResourcePolicyResponse = {}));\nexport var PutRetentionPolicyRequest;\n(function (PutRetentionPolicyRequest) {\n PutRetentionPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutRetentionPolicyRequest || (PutRetentionPolicyRequest = {}));\nexport var PutSubscriptionFilterRequest;\n(function (PutSubscriptionFilterRequest) {\n PutSubscriptionFilterRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutSubscriptionFilterRequest || (PutSubscriptionFilterRequest = {}));\nexport var QueryCompileErrorLocation;\n(function (QueryCompileErrorLocation) {\n QueryCompileErrorLocation.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueryCompileErrorLocation || (QueryCompileErrorLocation = {}));\nexport var QueryCompileError;\n(function (QueryCompileError) {\n QueryCompileError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueryCompileError || (QueryCompileError = {}));\nexport var MalformedQueryException;\n(function (MalformedQueryException) {\n MalformedQueryException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MalformedQueryException || (MalformedQueryException = {}));\nexport var StartQueryRequest;\n(function (StartQueryRequest) {\n StartQueryRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartQueryRequest || (StartQueryRequest = {}));\nexport var StartQueryResponse;\n(function (StartQueryResponse) {\n StartQueryResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StartQueryResponse || (StartQueryResponse = {}));\nexport var StopQueryRequest;\n(function (StopQueryRequest) {\n StopQueryRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StopQueryRequest || (StopQueryRequest = {}));\nexport var StopQueryResponse;\n(function (StopQueryResponse) {\n StopQueryResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StopQueryResponse || (StopQueryResponse = {}));\nexport var TagLogGroupRequest;\n(function (TagLogGroupRequest) {\n TagLogGroupRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagLogGroupRequest || (TagLogGroupRequest = {}));\nexport var TestMetricFilterRequest;\n(function (TestMetricFilterRequest) {\n TestMetricFilterRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TestMetricFilterRequest || (TestMetricFilterRequest = {}));\nexport var MetricFilterMatchRecord;\n(function (MetricFilterMatchRecord) {\n MetricFilterMatchRecord.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricFilterMatchRecord || (MetricFilterMatchRecord = {}));\nexport var TestMetricFilterResponse;\n(function (TestMetricFilterResponse) {\n TestMetricFilterResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TestMetricFilterResponse || (TestMetricFilterResponse = {}));\nexport var UntagLogGroupRequest;\n(function (UntagLogGroupRequest) {\n UntagLogGroupRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagLogGroupRequest || (UntagLogGroupRequest = {}));\n//# sourceMappingURL=models_0.js.map","import { __extends } from \"tslib\";\nimport { CreateLogGroupRequest } from \"../models/models_0\";\nimport { deserializeAws_json1_1CreateLogGroupCommand, serializeAws_json1_1CreateLogGroupCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a log group with the specified name. You can create up to 20,000 log groups per account.

\n *

You must use the following guidelines when naming a log group:

\n *
    \n *
  • \n *

    Log group names must be unique within a region for an AWS account.

    \n *
  • \n *
  • \n *

    Log group names can be between 1 and 512 characters long.

    \n *
  • \n *
  • \n *

    Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen),\n * '/' (forward slash), '.' (period), and '#' (number sign)

    \n *
  • \n *
\n *

When you create a log group, by default the log events in the log group never expire. To set\n * a retention policy so that events expire and are deleted after a specified time, use\n * PutRetentionPolicy.

\n *

If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK.\n * This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs.\n * This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested.

\n *

If you attempt to associate a CMK with the log group but the CMK does not exist or the\n * CMK is disabled, you receive an InvalidParameterException error.

\n * \n *

CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with\n * your log group. For more information, see Using Symmetric and Asymmetric\n * Keys.

\n *
\n */\nvar CreateLogGroupCommand = /** @class */ (function (_super) {\n __extends(CreateLogGroupCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CreateLogGroupCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CreateLogGroupCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"CreateLogGroupCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CreateLogGroupRequest.filterSensitiveLog,\n outputFilterSensitiveLog: function (output) { return output; },\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CreateLogGroupCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1CreateLogGroupCommand(input, context);\n };\n CreateLogGroupCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1CreateLogGroupCommand(output, context);\n };\n return CreateLogGroupCommand;\n}($Command));\nexport { CreateLogGroupCommand };\n//# sourceMappingURL=CreateLogGroupCommand.js.map","import { __extends } from \"tslib\";\nimport { DescribeLogGroupsRequest, DescribeLogGroupsResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1DescribeLogGroupsCommand, serializeAws_json1_1DescribeLogGroupsCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists the specified log groups. You can list all your log groups or filter the results by prefix.\n * The results are ASCII-sorted by log group name.

\n */\nvar DescribeLogGroupsCommand = /** @class */ (function (_super) {\n __extends(DescribeLogGroupsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function DescribeLogGroupsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n DescribeLogGroupsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"DescribeLogGroupsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: DescribeLogGroupsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: DescribeLogGroupsResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n DescribeLogGroupsCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1DescribeLogGroupsCommand(input, context);\n };\n DescribeLogGroupsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1DescribeLogGroupsCommand(output, context);\n };\n return DescribeLogGroupsCommand;\n}($Command));\nexport { DescribeLogGroupsCommand };\n//# sourceMappingURL=DescribeLogGroupsCommand.js.map","import { __extends } from \"tslib\";\nimport { CreateLogStreamRequest } from \"../models/models_0\";\nimport { deserializeAws_json1_1CreateLogStreamCommand, serializeAws_json1_1CreateLogStreamCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a log stream for the specified log group. A log stream is a sequence of log events\n * that originate from a single source, such as an application instance or a resource that is\n * being monitored.

\n *

There is no limit on the number of log streams that you can create for a log group. There is a limit\n * of 50 TPS on CreateLogStream operations, after which transactions are throttled.

\n *

You must use the following guidelines when naming a log stream:

\n *
    \n *
  • \n *

    Log stream names must be unique within the log group.

    \n *
  • \n *
  • \n *

    Log stream names can be between 1 and 512 characters long.

    \n *
  • \n *
  • \n *

    The ':' (colon) and '*' (asterisk) characters are not allowed.

    \n *
  • \n *
\n */\nvar CreateLogStreamCommand = /** @class */ (function (_super) {\n __extends(CreateLogStreamCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CreateLogStreamCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CreateLogStreamCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"CreateLogStreamCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CreateLogStreamRequest.filterSensitiveLog,\n outputFilterSensitiveLog: function (output) { return output; },\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CreateLogStreamCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1CreateLogStreamCommand(input, context);\n };\n CreateLogStreamCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1CreateLogStreamCommand(output, context);\n };\n return CreateLogStreamCommand;\n}($Command));\nexport { CreateLogStreamCommand };\n//# sourceMappingURL=CreateLogStreamCommand.js.map","import { __extends } from \"tslib\";\nimport { DescribeLogStreamsRequest, DescribeLogStreamsResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1DescribeLogStreamsCommand, serializeAws_json1_1DescribeLogStreamsCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists the log streams for the specified log group.\n * You can list all the log streams or filter the results by prefix.\n * You can also control how the results are ordered.

\n *

This operation has a limit of five transactions per second, after which transactions are throttled.

\n */\nvar DescribeLogStreamsCommand = /** @class */ (function (_super) {\n __extends(DescribeLogStreamsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function DescribeLogStreamsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n DescribeLogStreamsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"DescribeLogStreamsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: DescribeLogStreamsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: DescribeLogStreamsResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n DescribeLogStreamsCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1DescribeLogStreamsCommand(input, context);\n };\n DescribeLogStreamsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1DescribeLogStreamsCommand(output, context);\n };\n return DescribeLogStreamsCommand;\n}($Command));\nexport { DescribeLogStreamsCommand };\n//# sourceMappingURL=DescribeLogStreamsCommand.js.map","import { __extends } from \"tslib\";\nimport { GetLogEventsRequest, GetLogEventsResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetLogEventsCommand, serializeAws_json1_1GetLogEventsCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists log events from the specified log stream. You can list all of the log events or\n * filter using a time range.

\n *\n *

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events).\n * You can get additional log events by specifying one of the tokens in a subsequent call.\n * This operation can return empty results while there are more log events available through the token.

\n */\nvar GetLogEventsCommand = /** @class */ (function (_super) {\n __extends(GetLogEventsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetLogEventsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetLogEventsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"GetLogEventsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetLogEventsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: GetLogEventsResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetLogEventsCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetLogEventsCommand(input, context);\n };\n GetLogEventsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetLogEventsCommand(output, context);\n };\n return GetLogEventsCommand;\n}($Command));\nexport { GetLogEventsCommand };\n//# sourceMappingURL=GetLogEventsCommand.js.map","import { __extends } from \"tslib\";\nimport { PutLogEventsRequest, PutLogEventsResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1PutLogEventsCommand, serializeAws_json1_1PutLogEventsCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Uploads a batch of log events to the specified log stream.

\n *

You must include the sequence token obtained from the response of the previous call. An\n * upload in a newly created log stream does not require a sequence token. You can also get the\n * sequence token in the expectedSequenceToken field from\n * InvalidSequenceTokenException. If you call PutLogEvents twice\n * within a narrow time period using the same value for sequenceToken, both calls\n * might be successful or one might be rejected.

\n *

The batch of events must satisfy the following constraints:

\n *
    \n *
  • \n *

    The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of\n * all event messages in UTF-8, plus 26 bytes for each log event.

    \n *
  • \n *
  • \n *

    None of the log events in the batch can be more than 2 hours in the future.

    \n *
  • \n *
  • \n *

    None of the log events in the batch can be older than 14 days or older than the retention\n * period of the log group.

    \n *
  • \n *
  • \n *

    The log events in the batch must be in chronological order by their timestamp. The\n * timestamp is the time the event occurred, expressed as the number of milliseconds after\n * Jan 1, 1970 00:00:00 UTC. (In AWS Tools for PowerShell and the AWS SDK for .NET, the\n * timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example,\n * 2017-09-15T13:45:30.)

    \n *
  • \n *
  • \n *

    A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

    \n *
  • \n *
  • \n *

    The maximum number of log events in a batch is 10,000.

    \n *
  • \n *
  • \n *

    There is a quota of 5 requests per second per log stream. Additional requests are throttled. This quota can't be changed.

    \n *
  • \n *
\n *

If a call to PutLogEvents returns \"UnrecognizedClientException\" the most likely cause is an invalid AWS access key ID or secret key.

\n */\nvar PutLogEventsCommand = /** @class */ (function (_super) {\n __extends(PutLogEventsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutLogEventsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutLogEventsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CloudWatchLogsClient\";\n var commandName = \"PutLogEventsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutLogEventsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: PutLogEventsResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutLogEventsCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1PutLogEventsCommand(input, context);\n };\n PutLogEventsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1PutLogEventsCommand(output, context);\n };\n return PutLogEventsCommand;\n}($Command));\nexport { PutLogEventsCommand };\n//# sourceMappingURL=PutLogEventsCommand.js.map","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"logs.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"logs.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"logs.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"logs.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"logs.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"af-south-1\":\n regionInfo = {\n hostname: \"logs.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"logs.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"logs.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"logs.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"logs.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"logs.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"logs.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"logs.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"logs.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"logs.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"logs.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"logs.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"logs.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"logs.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"logs.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"logs.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"logs-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"logs-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-west-1\":\n regionInfo = {\n hostname: \"logs-fips.us-west-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"logs-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"logs.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"logs.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"logs.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"logs.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"logs.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-east-1\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"logs.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"us-iso-east-1\":\n regionInfo = {\n hostname: \"logs.us-iso-east-1.c2s.ic.gov\",\n partition: \"aws-iso\",\n };\n break;\n case \"us-isob-east-1\":\n regionInfo = {\n hostname: \"logs.us-isob-east-1.sc2s.sgov.gov\",\n partition: \"aws-iso-b\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"logs.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"logs.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"logs\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2014-03-28\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"CloudWatch Logs\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n *

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from\n * EC2 instances, AWS CloudTrail, or other sources. You can then retrieve the associated\n * log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the\n * AWS CLI, CloudWatch Logs API, or CloudWatch Logs SDK.

\n *

You can use CloudWatch Logs to:

\n *
    \n *
  • \n *

    \n * Monitor logs from EC2 instances in real-time: You\n * can use CloudWatch Logs to monitor applications and systems using log data. For example,\n * CloudWatch Logs can track the number of errors that occur in your application logs and\n * send you a notification whenever the rate of errors exceeds a threshold that you specify.\n * CloudWatch Logs uses your log data for monitoring so no code changes are required. For\n * example, you can monitor application logs for specific literal terms (such as\n * \"NullReferenceException\") or count the number of occurrences of a literal term at a\n * particular position in log data (such as \"404\" status codes in an Apache access log). When\n * the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch\n * metric that you specify.

    \n *
  • \n *
  • \n *

    \n * Monitor AWS CloudTrail logged events: You can\n * create alarms in CloudWatch and receive notifications of particular API activity as\n * captured by CloudTrail. You can use the notification to perform troubleshooting.

    \n *
  • \n *
  • \n *

    \n * Archive log data: You can use CloudWatch Logs to\n * store your log data in highly durable storage. You can change the log retention setting so\n * that any log events older than this setting are automatically deleted. The CloudWatch Logs\n * agent makes it easy to quickly send both rotated and non-rotated log data off of a host\n * and into the log service. You can then access the raw log data when you need it.

    \n *
  • \n *
\n */\nvar CloudWatchLogsClient = /** @class */ (function (_super) {\n __extends(CloudWatchLogsClient, _super);\n function CloudWatchLogsClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n CloudWatchLogsClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CloudWatchLogsClient;\n}(__Client));\nexport { CloudWatchLogsClient };\n//# sourceMappingURL=CloudWatchLogsClient.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { CloudWatchLogsClient, CreateLogGroupCommand, CreateLogStreamCommand, DescribeLogGroupsCommand, DescribeLogStreamsCommand, GetLogEventsCommand, PutLogEventsCommand, } from '@aws-sdk/client-cloudwatch-logs';\nimport { Credentials } from '../..';\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { getAmplifyUserAgentObject } from '../Platform';\nimport { parseAWSExports } from '../parseAWSExports';\nimport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, } from '../Util/Constants';\nvar logger = new Logger('AWSCloudWatch');\nvar AWSCloudWatchProvider = /** @class */ (function () {\n function AWSCloudWatchProvider(config) {\n this.configure(config);\n this._dataTracker = {\n eventUploadInProgress: false,\n logEvents: [],\n };\n this._currentLogBatch = [];\n this._initiateLogPushInterval();\n }\n AWSCloudWatchProvider.prototype.getProviderName = function () {\n return AWSCloudWatchProvider.PROVIDER_NAME;\n };\n AWSCloudWatchProvider.prototype.getCategoryName = function () {\n return AWSCloudWatchProvider.CATEGORY;\n };\n AWSCloudWatchProvider.prototype.getLogQueue = function () {\n return this._dataTracker.logEvents;\n };\n AWSCloudWatchProvider.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n var conf = Object.assign({}, this._config, parseAWSExports(config).Logging, config);\n this._config = conf;\n return this._config;\n };\n AWSCloudWatchProvider.prototype.createLogGroup = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var cmd, credentialsOK, client, output, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('creating new log group in CloudWatch - ', params.logGroupName);\n cmd = new CreateLogGroupCommand(params);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 3:\n output = _a.sent();\n return [2 /*return*/, output];\n case 4:\n error_1 = _a.sent();\n logger.error(\"error creating log group - \".concat(error_1));\n throw error_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype.getLogGroups = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var cmd, credentialsOK, client, output, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting list of log groups');\n cmd = new DescribeLogGroupsCommand(params);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 3:\n output = _a.sent();\n return [2 /*return*/, output];\n case 4:\n error_2 = _a.sent();\n logger.error(\"error getting log group - \".concat(error_2));\n throw error_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype.createLogStream = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var cmd, credentialsOK, client, output, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('creating new log stream in CloudWatch - ', params.logStreamName);\n cmd = new CreateLogStreamCommand(params);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 3:\n output = _a.sent();\n return [2 /*return*/, output];\n case 4:\n error_3 = _a.sent();\n logger.error(\"error creating log stream - \".concat(error_3));\n throw error_3;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype.getLogStreams = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var cmd, credentialsOK, client, output, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting list of log streams');\n cmd = new DescribeLogStreamsCommand(params);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 3:\n output = _a.sent();\n return [2 /*return*/, output];\n case 4:\n error_4 = _a.sent();\n logger.error(\"error getting log stream - \".concat(error_4));\n throw error_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype.getLogEvents = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var cmd, credentialsOK, client, output, error_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting log events from stream - ', params.logStreamName);\n cmd = new GetLogEventsCommand(params);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 3:\n output = _a.sent();\n return [2 /*return*/, output];\n case 4:\n error_5 = _a.sent();\n logger.error(\"error getting log events - \".concat(error_5));\n throw error_5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype.pushLogs = function (logs) {\n logger.debug('pushing log events to Cloudwatch...');\n this._dataTracker.logEvents = __spreadArray(__spreadArray([], __read(this._dataTracker.logEvents), false), __read(logs), false);\n };\n AWSCloudWatchProvider.prototype._validateLogGroupExistsAndCreate = function (logGroupName) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, currGroups, foundGroups, err_1, errString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this._dataTracker.verifiedLogGroup) {\n return [2 /*return*/, this._dataTracker.verifiedLogGroup];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 5, , 6]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 2:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n return [4 /*yield*/, this.getLogGroups({\n logGroupNamePrefix: logGroupName,\n })];\n case 3:\n currGroups = _a.sent();\n if (!(typeof currGroups === 'string') && currGroups.logGroups) {\n foundGroups = currGroups.logGroups.filter(function (group) { return group.logGroupName === logGroupName; });\n if (foundGroups.length > 0) {\n this._dataTracker.verifiedLogGroup = foundGroups[0];\n return [2 /*return*/, foundGroups[0]];\n }\n }\n /**\n * If we get to this point, it means that the specified log group does not exist\n * and we should create it.\n */\n return [4 /*yield*/, this.createLogGroup({ logGroupName: logGroupName })];\n case 4:\n /**\n * If we get to this point, it means that the specified log group does not exist\n * and we should create it.\n */\n _a.sent();\n return [2 /*return*/, null];\n case 5:\n err_1 = _a.sent();\n errString = \"failure during log group search: \".concat(err_1);\n logger.error(errString);\n throw err_1;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._validateLogStreamExists = function (logGroupName, logStreamName) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, currStreams, foundStreams, err_2, errString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 4, , 5]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n return [4 /*yield*/, this.getLogStreams({\n logGroupName: logGroupName,\n logStreamNamePrefix: logStreamName,\n })];\n case 2:\n currStreams = _a.sent();\n if (currStreams.logStreams) {\n foundStreams = currStreams.logStreams.filter(function (stream) { return stream.logStreamName === logStreamName; });\n if (foundStreams.length > 0) {\n this._nextSequenceToken = foundStreams[0].uploadSequenceToken;\n return [2 /*return*/, foundStreams[0]];\n }\n }\n /**\n * If we get to this point, it means that the specified stream does not\n * exist, and we should create it now.\n */\n return [4 /*yield*/, this.createLogStream({\n logGroupName: logGroupName,\n logStreamName: logStreamName,\n })];\n case 3:\n /**\n * If we get to this point, it means that the specified stream does not\n * exist, and we should create it now.\n */\n _a.sent();\n return [2 /*return*/, null];\n case 4:\n err_2 = _a.sent();\n errString = \"failure during log stream search: \".concat(err_2);\n logger.error(errString);\n throw err_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._sendLogEvents = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, cmd, client, output, err_3, errString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error(NO_CREDS_ERROR_STRING);\n }\n logger.debug('sending log events to stream - ', params.logStreamName);\n cmd = new PutLogEventsCommand(params);\n client = this._initCloudWatchLogs();\n return [4 /*yield*/, client.send(cmd)];\n case 2:\n output = _a.sent();\n return [2 /*return*/, output];\n case 3:\n err_3 = _a.sent();\n errString = \"failure during log push: \".concat(err_3);\n logger.error(errString);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._initCloudWatchLogs = function () {\n return new CloudWatchLogsClient({\n region: this._config.region,\n credentials: this._config.credentials,\n customUserAgent: getAmplifyUserAgentObject(),\n endpoint: this._config.endpoint,\n });\n };\n AWSCloudWatchProvider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = Credentials.shear(credentials);\n logger.debug('set credentials for logging', cred);\n _this._config.credentials = cred;\n return true;\n })\n .catch(function (error) {\n logger.warn('ensure credentials error', error);\n return false;\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._getNextSequenceToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n var logStream, err_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this._nextSequenceToken && this._nextSequenceToken.length > 0) {\n return [2 /*return*/, this._nextSequenceToken];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this._validateLogGroupExistsAndCreate(this._config.logGroupName)];\n case 2:\n _a.sent();\n this._nextSequenceToken = undefined;\n return [4 /*yield*/, this._validateLogStreamExists(this._config.logGroupName, this._config.logStreamName)];\n case 3:\n logStream = _a.sent();\n if (logStream) {\n this._nextSequenceToken = logStream.uploadSequenceToken;\n }\n return [2 /*return*/, this._nextSequenceToken];\n case 4:\n err_4 = _a.sent();\n logger.error(\"failure while getting next sequence token: \".concat(err_4));\n throw err_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._safeUploadLogEvents = function () {\n return __awaiter(this, void 0, void 0, function () {\n var seqToken, logBatch, putLogsPayload, sendLogEventsResponse, err_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, this._getNextSequenceToken()];\n case 1:\n seqToken = _a.sent();\n logBatch = this._currentLogBatch.length === 0\n ? this._getBufferedBatchOfLogs()\n : this._currentLogBatch;\n putLogsPayload = {\n logGroupName: this._config.logGroupName,\n logStreamName: this._config.logStreamName,\n logEvents: logBatch,\n sequenceToken: seqToken,\n };\n this._dataTracker.eventUploadInProgress = true;\n return [4 /*yield*/, this._sendLogEvents(putLogsPayload)];\n case 2:\n sendLogEventsResponse = _a.sent();\n this._nextSequenceToken = sendLogEventsResponse.nextSequenceToken;\n this._dataTracker.eventUploadInProgress = false;\n this._currentLogBatch = [];\n return [2 /*return*/, sendLogEventsResponse];\n case 3:\n err_5 = _a.sent();\n logger.error(\"error during _safeUploadLogEvents: \".concat(err_5));\n if (RETRY_ERROR_CODES.includes(err_5.name)) {\n this._getNewSequenceTokenAndSubmit({\n logEvents: this._currentLogBatch,\n logGroupName: this._config.logGroupName,\n logStreamName: this._config.logStreamName,\n });\n }\n else {\n this._dataTracker.eventUploadInProgress = false;\n throw err_5;\n }\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._getBufferedBatchOfLogs = function () {\n /**\n * CloudWatch has restrictions on the size of the log events that get sent up.\n * We need to track both the size of each event and the total size of the batch\n * of logs.\n *\n * We also need to ensure that the logs in the batch are sorted in chronological order.\n * https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html\n */\n var currentEventIdx = 0;\n var totalByteSize = 0;\n while (currentEventIdx < this._dataTracker.logEvents.length) {\n var currentEvent = this._dataTracker.logEvents[currentEventIdx];\n var eventSize = currentEvent\n ? new TextEncoder().encode(currentEvent.message).length +\n AWS_CLOUDWATCH_BASE_BUFFER_SIZE\n : 0;\n if (eventSize > AWS_CLOUDWATCH_MAX_EVENT_SIZE) {\n var errString = \"Log entry exceeds maximum size for CloudWatch logs. Log size: \".concat(eventSize, \". Truncating log message.\");\n logger.warn(errString);\n currentEvent.message = currentEvent.message.substring(0, eventSize);\n }\n if (totalByteSize + eventSize > AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE)\n break;\n totalByteSize += eventSize;\n currentEventIdx++;\n }\n this._currentLogBatch = this._dataTracker.logEvents.splice(0, currentEventIdx);\n return this._currentLogBatch;\n };\n AWSCloudWatchProvider.prototype._getNewSequenceTokenAndSubmit = function (payload) {\n return __awaiter(this, void 0, void 0, function () {\n var seqToken, sendLogEventsRepsonse, err_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n this._nextSequenceToken = undefined;\n this._dataTracker.eventUploadInProgress = true;\n return [4 /*yield*/, this._getNextSequenceToken()];\n case 1:\n seqToken = _a.sent();\n payload.sequenceToken = seqToken;\n return [4 /*yield*/, this._sendLogEvents(payload)];\n case 2:\n sendLogEventsRepsonse = _a.sent();\n this._dataTracker.eventUploadInProgress = false;\n this._currentLogBatch = [];\n return [2 /*return*/, sendLogEventsRepsonse];\n case 3:\n err_6 = _a.sent();\n logger.error(\"error when retrying log submission with new sequence token: \".concat(err_6));\n this._dataTracker.eventUploadInProgress = false;\n throw err_6;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSCloudWatchProvider.prototype._initiateLogPushInterval = function () {\n var _this = this;\n if (this._timer) {\n clearInterval(this._timer);\n }\n this._timer = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {\n var err_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!this._getDocUploadPermissibility()) return [3 /*break*/, 2];\n return [4 /*yield*/, this._safeUploadLogEvents()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [3 /*break*/, 4];\n case 3:\n err_7 = _a.sent();\n logger.error(\"error when calling _safeUploadLogEvents in the timer interval - \".concat(err_7));\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }, 2000);\n };\n AWSCloudWatchProvider.prototype._getDocUploadPermissibility = function () {\n return ((this._dataTracker.logEvents.length !== 0 ||\n this._currentLogBatch.length !== 0) &&\n !this._dataTracker.eventUploadInProgress);\n };\n AWSCloudWatchProvider.PROVIDER_NAME = AWS_CLOUDWATCH_PROVIDER_NAME;\n AWSCloudWatchProvider.CATEGORY = AWS_CLOUDWATCH_CATEGORY;\n return AWSCloudWatchProvider;\n}());\nexport { AWSCloudWatchProvider };\n","import { __assign } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { API } from '@aws-amplify/api';\nimport { InternalAPI } from '@aws-amplify/api/internals';\nimport { Auth } from '@aws-amplify/auth';\nimport { AmplifyClass, Credentials, UniversalStorage } from '@aws-amplify/core';\nimport { DataStore } from '@aws-amplify/datastore';\n// ! We have to use this exact reference, since it gets mutated with Amplify.Auth\nimport { Amplify } from './index';\nvar requiredModules = [\n // API cannot function without Auth\n Auth,\n // Auth cannot function without Credentials\n Credentials,\n];\n// These modules have been tested with SSR\nvar defaultModules = [API, Auth, DataStore];\nexport function withSSRContext(context) {\n if (context === void 0) { context = {}; }\n var _a = context.modules, modules = _a === void 0 ? defaultModules : _a, req = context.req;\n if (modules.includes(DataStore)) {\n modules.push(InternalAPI);\n }\n var previousConfig = Amplify.configure();\n var amplify = new AmplifyClass();\n var storage = new UniversalStorage({ req: req });\n requiredModules.forEach(function (m) {\n if (!modules.includes(m)) {\n // @ts-ignore This expression is not constructable.\n // Type 'Function' has no construct signatures.ts(2351)\n amplify.register(new m.constructor());\n }\n });\n // Associate new module instances with this amplify\n modules.forEach(function (m) {\n amplify.register(new m.constructor());\n });\n // Configure new Amplify instances with previous configuration\n amplify.configure(__assign(__assign({}, previousConfig), { storage: storage }));\n return amplify;\n}\n//# sourceMappingURL=withSSRContext.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from \"tslib\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { getEndpointFromRegion } from \"./utils/getEndpointFromRegion\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n var useDualstackEndpoint = normalizeProvider(input.useDualstackEndpoint);\n var endpoint = input.endpoint, useFipsEndpoint = input.useFipsEndpoint, urlParser = input.urlParser;\n return __assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: endpoint\n ? normalizeProvider(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : function () { return getEndpointFromRegion(__assign(__assign({}, input), { useDualstackEndpoint: useDualstackEndpoint, useFipsEndpoint: useFipsEndpoint })); }, isCustomEndpoint: !!endpoint, useDualstackEndpoint: useDualstackEndpoint });\n};\n","import { __awaiter, __generator } from \"tslib\";\nexport var getEndpointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, useDualstackEndpoint, useFipsEndpoint, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4, input.useDualstackEndpoint()];\n case 2:\n useDualstackEndpoint = _c.sent();\n return [4, input.useFipsEndpoint()];\n case 3:\n useFipsEndpoint = _c.sent();\n return [4, input.regionInfoProvider(region, { useDualstackEndpoint: useDualstackEndpoint, useFipsEndpoint: useFipsEndpoint })];\n case 4:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2, input.urlParser(\"\".concat(tls ? \"https:\" : \"http:\", \"//\").concat(hostname))];\n }\n });\n}); };\n","export var isFipsRegion = function (region) {\n return typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n};\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport var getRealRegion = function (region) {\n return isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n};\n","export var getHostnameFromVariants = function (variants, _a) {\n var _b;\n if (variants === void 0) { variants = []; }\n var useFipsEndpoint = _a.useFipsEndpoint, useDualstackEndpoint = _a.useDualstackEndpoint;\n return (_b = variants.find(function (_a) {\n var tags = _a.tags;\n return useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\");\n })) === null || _b === void 0 ? void 0 : _b.hostname;\n};\n","import { __assign } from \"tslib\";\nimport { getHostnameFromVariants } from \"./getHostnameFromVariants\";\nimport { getResolvedHostname } from \"./getResolvedHostname\";\nimport { getResolvedPartition } from \"./getResolvedPartition\";\nimport { getResolvedSigningRegion } from \"./getResolvedSigningRegion\";\nexport var getRegionInfo = function (region, _a) {\n var _b, _c, _d, _e, _f, _g;\n var _h = _a.useFipsEndpoint, useFipsEndpoint = _h === void 0 ? false : _h, _j = _a.useDualstackEndpoint, useDualstackEndpoint = _j === void 0 ? false : _j, signingService = _a.signingService, regionHash = _a.regionHash, partitionHash = _a.partitionHash;\n var partition = getResolvedPartition(region, { partitionHash: partitionHash });\n var resolvedRegion = region in regionHash ? region : (_c = (_b = partitionHash[partition]) === null || _b === void 0 ? void 0 : _b.endpoint) !== null && _c !== void 0 ? _c : region;\n var hostnameOptions = { useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint };\n var regionHostname = getHostnameFromVariants((_d = regionHash[resolvedRegion]) === null || _d === void 0 ? void 0 : _d.variants, hostnameOptions);\n var partitionHostname = getHostnameFromVariants((_e = partitionHash[partition]) === null || _e === void 0 ? void 0 : _e.variants, hostnameOptions);\n var hostname = getResolvedHostname(resolvedRegion, { regionHostname: regionHostname, partitionHostname: partitionHostname });\n if (hostname === undefined) {\n throw new Error(\"Endpoint resolution failed for: \".concat({ resolvedRegion: resolvedRegion, useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint }));\n }\n var signingRegion = getResolvedSigningRegion(hostname, {\n signingRegion: (_f = regionHash[resolvedRegion]) === null || _f === void 0 ? void 0 : _f.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint: useFipsEndpoint,\n });\n return __assign(__assign({ partition: partition, signingService: signingService, hostname: hostname }, (signingRegion && { signingRegion: signingRegion })), (((_g = regionHash[resolvedRegion]) === null || _g === void 0 ? void 0 : _g.signingService) && {\n signingService: regionHash[resolvedRegion].signingService,\n }));\n};\n","export var getResolvedPartition = function (region, _a) {\n var _b;\n var partitionHash = _a.partitionHash;\n return (_b = Object.keys(partitionHash || {}).find(function (key) { return partitionHash[key].regions.includes(region); })) !== null && _b !== void 0 ? _b : \"aws\";\n};\n","export var getResolvedHostname = function (resolvedRegion, _a) {\n var regionHostname = _a.regionHostname, partitionHostname = _a.partitionHostname;\n return regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\n};\n","export var getResolvedSigningRegion = function (hostname, _a) {\n var signingRegion = _a.signingRegion, regionRegex = _a.regionRegex, useFipsEndpoint = _a.useFipsEndpoint;\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n var regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n var regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) {\n return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length_1;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n length_1 = bodyLengthChecker(body);\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length_1), _a));\n }\n catch (error) {\n }\n }\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n });\n }); };\n };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) {\n return function (next) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2, next(args)];\n });\n }); };\n };\n};\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport var DEFAULT_MAX_ATTEMPTS = 3;\nexport var DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2, response];\n }\n });\n }); };\n };\n};\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nvar ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nvar ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport var recursionDetectionMiddleware = function (options) {\n return function (next) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, functionName, traceId, nonEmptyString;\n return __generator(this, function (_a) {\n request = args.request;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return [2, next(args)];\n }\n functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n traceId = process.env[ENV_TRACE_ID];\n nonEmptyString = function (str) { return typeof str === \"string\" && str.length > 0; };\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n });\n }); };\n };\n};\nexport var addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport var getRecursionDetectionPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n}); };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport var NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes((error === null || error === void 0 ? void 0 : error.code) || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nvar DefaultRateLimiter = (function () {\n function DefaultRateLimiter(options) {\n var _a, _b, _c, _d, _e;\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (_a = options === null || options === void 0 ? void 0 : options.beta) !== null && _a !== void 0 ? _a : 0.7;\n this.minCapacity = (_b = options === null || options === void 0 ? void 0 : options.minCapacity) !== null && _b !== void 0 ? _b : 1;\n this.minFillRate = (_c = options === null || options === void 0 ? void 0 : options.minFillRate) !== null && _c !== void 0 ? _c : 0.5;\n this.scaleConstant = (_d = options === null || options === void 0 ? void 0 : options.scaleConstant) !== null && _d !== void 0 ? _d : 0.4;\n this.smooth = (_e = options === null || options === void 0 ? void 0 : options.smooth) !== null && _e !== void 0 ? _e : 0.8;\n var currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n DefaultRateLimiter.prototype.getCurrentTimeInSeconds = function () {\n return Date.now() / 1000;\n };\n DefaultRateLimiter.prototype.getSendToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, this.acquireTokenBucket(1)];\n });\n });\n };\n DefaultRateLimiter.prototype.acquireTokenBucket = function (amount) {\n return __awaiter(this, void 0, void 0, function () {\n var delay_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.enabled) {\n return [2];\n }\n this.refillTokenBucket();\n if (!(amount > this.currentCapacity)) return [3, 2];\n delay_1 = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n return [4, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.currentCapacity = this.currentCapacity - amount;\n return [2];\n }\n });\n });\n };\n DefaultRateLimiter.prototype.refillTokenBucket = function () {\n var timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n var fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n };\n DefaultRateLimiter.prototype.updateClientSendingRate = function (response) {\n var calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n var rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n var newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n };\n DefaultRateLimiter.prototype.calculateTimeWindow = function () {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n };\n DefaultRateLimiter.prototype.cubicThrottle = function (rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n };\n DefaultRateLimiter.prototype.cubicSuccess = function (timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n };\n DefaultRateLimiter.prototype.enableTokenBucket = function () {\n this.enabled = true;\n };\n DefaultRateLimiter.prototype.updateTokenBucketRate = function (newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n };\n DefaultRateLimiter.prototype.updateMeasuredRate = function () {\n var t = this.getCurrentTimeInSeconds();\n var timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n var currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n };\n DefaultRateLimiter.prototype.getPrecise = function (num) {\n return parseFloat(num.toFixed(8));\n };\n return DefaultRateLimiter;\n}());\nexport { DefaultRateLimiter };\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n","export var DEFAULT_RETRY_DELAY_BASE = 100;\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\nexport var INITIAL_RETRY_TOKENS = 500;\nexport var RETRY_COST = 5;\nexport var TIMEOUT_RETRY_COST = 10;\nexport var NO_RETRY_INCREMENT = 1;\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\nvar StandardRetryStrategy = (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.STANDARD;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3, 3];\n case 3: return [2, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args, options) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _b, response, output, e_1, err, delayFromDecider, delayFromResponse, delay_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 4, , 7]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\".concat(attempts + 1, \"; max=\").concat(maxAttempts);\n }\n if (!(options === null || options === void 0 ? void 0 : options.beforeRequest)) return [3, 2];\n return [4, options.beforeRequest()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2: return [4, next(args)];\n case 3:\n _b = _c.sent(), response = _b.response, output = _b.output;\n if (options === null || options === void 0 ? void 0 : options.afterRequest) {\n options.afterRequest(response);\n }\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2, { value: { response: response, output: output } }];\n case 4:\n e_1 = _c.sent();\n err = asSdkError(e_1);\n attempts++;\n if (!this_1.shouldRetry(err, attempts, maxAttempts)) return [3, 6];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err);\n delayFromDecider = this_1.delayDecider(isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n delayFromResponse = getDelayFromRetryAfterHeader(err.$response);\n delay_1 = Math.max(delayFromResponse || 0, delayFromDecider);\n totalDelay += delay_1;\n return [4, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 5:\n _c.sent();\n return [2, \"continue\"];\n case 6:\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n case 7: return [2];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3, 4];\n return [5, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2, state_1.value];\n return [3, 2];\n case 4: return [2];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\nvar getDelayFromRetryAfterHeader = function (response) {\n if (!HttpResponse.isInstance(response))\n return;\n var retryAfterHeaderName = Object.keys(response.headers).find(function (key) { return key.toLowerCase() === \"retry-after\"; });\n if (!retryAfterHeaderName)\n return;\n var retryAfter = response.headers[retryAfterHeaderName];\n var retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return retryAfterSeconds * 1000;\n var retryAfterDate = new Date(retryAfter);\n return retryAfterDate.getTime() - Date.now();\n};\nvar asSdkError = function (error) {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(\"AWS SDK error wrapper for \".concat(error));\n};\n","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens, options) {\n var _a, _b, _c;\n var MAX_CAPACITY = initialRetryTokens;\n var noRetryIncrement = (_a = options === null || options === void 0 ? void 0 : options.noRetryIncrement) !== null && _a !== void 0 ? _a : NO_RETRY_INCREMENT;\n var retryCost = (_b = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _b !== void 0 ? _b : RETRY_COST;\n var timeoutRetryCost = (_c = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _c !== void 0 ? _c : TIMEOUT_RETRY_COST;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n","import { __awaiter, __extends, __generator, __rest } from \"tslib\";\nimport { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nvar AdaptiveRetryStrategy = (function (_super) {\n __extends(AdaptiveRetryStrategy, _super);\n function AdaptiveRetryStrategy(maxAttemptsProvider, options) {\n var _this = this;\n var _a = options !== null && options !== void 0 ? options : {}, rateLimiter = _a.rateLimiter, superOptions = __rest(_a, [\"rateLimiter\"]);\n _this = _super.call(this, maxAttemptsProvider, superOptions) || this;\n _this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new DefaultRateLimiter();\n _this.mode = RETRY_MODES.ADAPTIVE;\n return _this;\n }\n AdaptiveRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2, _super.prototype.retry.call(this, next, args, {\n beforeRequest: function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, this.rateLimiter.getSendToken()];\n });\n }); },\n afterRequest: function (response) {\n _this.rateLimiter.updateClientSendingRate(response);\n },\n })];\n });\n });\n };\n return AdaptiveRetryStrategy;\n}(StandardRetryStrategy));\nexport { AdaptiveRetryStrategy };\n","import { __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nexport var retryMiddleware = function (options) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var retryStrategy;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, options.retryStrategy()];\n case 1:\n retryStrategy = _a.sent();\n if (retryStrategy === null || retryStrategy === void 0 ? void 0 : retryStrategy.mode)\n context.userAgent = __spreadArray(__spreadArray([], __read((context.userAgent || [])), false), [[\"cfg/retry-mode\", retryStrategy.mode]], false);\n return [2, retryStrategy.retry(next, args)];\n }\n });\n }); };\n };\n};\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { memoize } from \"@aws-sdk/property-provider\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nvar CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport var resolveAwsAuthConfig = function (input) {\n var normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = (_a = input).regionInfoProvider;\n _c = [region];\n _d = {};\n return [4, input.useFipsEndpoint()];\n case 1:\n _d.useFipsEndpoint = _e.sent();\n return [4, input.useDualstackEndpoint()];\n case 2: return [4, _b.apply(_a, _c.concat([(_d.useDualstackEndpoint = _e.sent(),\n _d)]))];\n case 3: return [2, [\n (_e.sent()) || {},\n region\n ]];\n }\n });\n }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n var params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });\n var SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n };\n }\n else {\n signer = function (authScheme) { return __awaiter(void 0, void 0, void 0, function () {\n var signingRegion, signingService, params, SignerCtor;\n return __generator(this, function (_a) {\n if (!authScheme) {\n throw new Error(\"Unexpected empty auth scheme config\");\n }\n signingRegion = authScheme.signingScope;\n signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });\n SignerCtor = input.signerConstructor || SignatureV4;\n return [2, new SignerCtor(params)];\n });\n }); };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n};\nexport var resolveSigV4AuthConfig = function (input) {\n var normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n};\nvar normalizeCredentialProvider = function (credentials) {\n if (typeof credentials === \"function\") {\n return memoize(credentials, function (credentials) {\n return credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW;\n }, function (credentials) { return credentials.expiration !== undefined; });\n }\n return normalizeProvider(credentials);\n};\n","export var getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport var getUpdatedSystemClockOffset = function (clockTime, currentSystemClockOffset) {\n var clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport var isClockSkewed = function (clockTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { getSkewCorrectedDate } from \"./utils/getSkewCorrectedDate\";\nimport { getUpdatedSystemClockOffset } from \"./utils/getUpdatedSystemClockOffset\";\nexport var awsAuthMiddleware = function (options) {\n return function (next, context) {\n return function (args) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var authScheme, signer, output, _d, _e, dateHeader;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request))\n return [2, next(args)];\n authScheme = (_c = (_b = (_a = (context.endpointV2)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];\n return [4, options.signer(authScheme)];\n case 1:\n signer = _g.sent();\n _d = next;\n _e = [__assign({}, args)];\n _f = {};\n return [4, signer.sign(args.request, {\n signingDate: getSkewCorrectedDate(options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n })];\n case 2: return [4, _d.apply(void 0, [__assign.apply(void 0, _e.concat([(_f.request = _g.sent(), _f)]))]).catch(function (error) {\n var _a;\n var serverTime = (_a = error.ServerTime) !== null && _a !== void 0 ? _a : getDateHeader(error.$response);\n if (serverTime) {\n options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);\n }\n throw error;\n })];\n case 3:\n output = _g.sent();\n dateHeader = getDateHeader(output.response);\n if (dateHeader) {\n options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);\n }\n return [2, output];\n }\n });\n });\n };\n };\n};\nvar getDateHeader = function (response) { var _a, _b, _c; return HttpResponse.isInstance(response) ? (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : (_c = response.headers) === null || _c === void 0 ? void 0 : _c.Date : undefined; };\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport var getAwsAuthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n}); };\nexport var getSigV4AuthPlugin = getAwsAuthPlugin;\n","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\nexport var userAgentMiddleware = function (options) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, sdkUserAgentValue, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n sdkUserAgentValue = __spreadArray(__spreadArray(__spreadArray([], __read(defaultUserAgent), false), __read(userAgent), false), __read(customUserAgent), false).join(SPACE);\n normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); })), false), __read(customUserAgent), false).join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? \"\".concat(headers[USER_AGENT], \" \").concat(normalUAValue)\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return [2, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n }); };\n };\n};\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex);\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(\"Invalid character \".concat(input[j], \" in base64 string.\"));\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","import { __awaiter, __generator, __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = (function () {\n function FetchHttpHandler(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then(function (opts) { return opts || {}; });\n }\n else {\n this.config = options !== null && options !== void 0 ? options : {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n FetchHttpHandler.prototype.destroy = function () {\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n return __awaiter(this, void 0, void 0, function () {\n var _c, requestTimeoutInMs, abortError, path, queryString, port, method, url, body, requestOptions, fetchRequest, raceOfPromises;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!!this.config) return [3, 2];\n _c = this;\n return [4, this.configProvider];\n case 1:\n _c.config = _d.sent();\n _d.label = 2;\n case 2:\n requestTimeoutInMs = this.config.requestTimeout;\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return [2, Promise.reject(abortError)];\n }\n path = request.path;\n if (request.query) {\n queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\".concat(queryString);\n }\n }\n port = request.port, method = request.method;\n url = \"\".concat(request.protocol, \"//\").concat(request.hostname).concat(port ? \":\".concat(port) : \"\").concat(path);\n body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n fetchRequest = new Request(url, requestOptions);\n raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return [2, Promise.race(raceOfPromises)];\n }\n });\n });\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(\"\".concat(key, \"=\").concat(escapeUri(value[i])));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\".concat(escapeUri(value));\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \".concat(timeoutInMs, \" ms\"));\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3, 3];\n return [4, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3, 1];\n case 3: return [2, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n reader.readAsDataURL(blob);\n });\n}\n","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n","export var calculateBodyLength = function (body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(\"Body Length computation failed for \".concat(body));\n};\n","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = typeof window !== \"undefined\" && ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"os/\".concat(((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n [\"lang/js\"],\n [\"md/browser\", \"\".concat((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\", \"_\").concat((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n sections.push([\"api/\".concat(serviceId), clientVersion]);\n }\n return [2, sections];\n });\n }); };\n};\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n if (typeof url === 'string') {\n return parseUrl(new URL(url));\n }\n var _a = url, hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getRegionInfo } from \"@aws-sdk/config-resolver\";\nvar regionHash = {};\nvar partitionHash = {\n aws: {\n regions: [\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-northeast-3\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ap-southeast-3\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-central-1\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n ],\n regionRegex: \"^(us|eu|ap|sa|ca|me|af)\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"geo.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"geo-fips.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"geo-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"geo.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-cn\": {\n regions: [\"cn-north-1\", \"cn-northwest-1\"],\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"geo.{region}.amazonaws.com.cn\",\n tags: [],\n },\n {\n hostname: \"geo-fips.{region}.amazonaws.com.cn\",\n tags: [\"fips\"],\n },\n {\n hostname: \"geo-fips.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"geo.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-iso\": {\n regions: [\"us-iso-east-1\", \"us-iso-west-1\"],\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"geo.{region}.c2s.ic.gov\",\n tags: [],\n },\n {\n hostname: \"geo-fips.{region}.c2s.ic.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-iso-b\": {\n regions: [\"us-isob-east-1\"],\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"geo.{region}.sc2s.sgov.gov\",\n tags: [],\n },\n {\n hostname: \"geo-fips.{region}.sc2s.sgov.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-us-gov\": {\n regions: [\"us-gov-east-1\", \"us-gov-west-1\"],\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"geo.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"geo-fips.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"geo-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"geo.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n};\nexport var defaultRegionInfoProvider = function (region, options) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, getRegionInfo(region, __assign(__assign({}, options), { signingService: \"geo\", regionHash: regionHash, partitionHash: partitionHash }))];\n });\n}); };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport packageInfo from \"../package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@aws-sdk/config-resolver\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@aws-sdk/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@aws-sdk/util-defaults-mode-browser\";\nexport var getRuntimeConfig = function (config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n var defaultsMode = resolveDefaultsModeConfig(config);\n var defaultConfigProvider = function () { return defaultsMode().then(loadConfigsForDefaultMode); };\n var clientSharedValues = getSharedRuntimeConfig(config);\n return __assign(__assign(__assign({}, clientSharedValues), config), { runtime: \"browser\", defaultsMode: defaultsMode, base64Decoder: (_a = config === null || config === void 0 ? void 0 : config.base64Decoder) !== null && _a !== void 0 ? _a : fromBase64, base64Encoder: (_b = config === null || config === void 0 ? void 0 : config.base64Encoder) !== null && _b !== void 0 ? _b : toBase64, bodyLengthChecker: (_c = config === null || config === void 0 ? void 0 : config.bodyLengthChecker) !== null && _c !== void 0 ? _c : calculateBodyLength, credentialDefaultProvider: (_d = config === null || config === void 0 ? void 0 : config.credentialDefaultProvider) !== null && _d !== void 0 ? _d : (function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }), defaultUserAgentProvider: (_e = config === null || config === void 0 ? void 0 : config.defaultUserAgentProvider) !== null && _e !== void 0 ? _e : defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), maxAttempts: (_f = config === null || config === void 0 ? void 0 : config.maxAttempts) !== null && _f !== void 0 ? _f : DEFAULT_MAX_ATTEMPTS, region: (_g = config === null || config === void 0 ? void 0 : config.region) !== null && _g !== void 0 ? _g : invalidProvider(\"Region is missing\"), requestHandler: (_h = config === null || config === void 0 ? void 0 : config.requestHandler) !== null && _h !== void 0 ? _h : new RequestHandler(defaultConfigProvider), retryMode: (_j = config === null || config === void 0 ? void 0 : config.retryMode) !== null && _j !== void 0 ? _j : (function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, defaultConfigProvider()];\n case 1: return [2, (_a.sent()).retryMode || DEFAULT_RETRY_MODE];\n }\n }); }); }), sha256: (_k = config === null || config === void 0 ? void 0 : config.sha256) !== null && _k !== void 0 ? _k : Sha256, streamCollector: (_l = config === null || config === void 0 ? void 0 : config.streamCollector) !== null && _l !== void 0 ? _l : streamCollector, useDualstackEndpoint: (_m = config === null || config === void 0 ? void 0 : config.useDualstackEndpoint) !== null && _m !== void 0 ? _m : (function () { return Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT); }), useFipsEndpoint: (_o = config === null || config === void 0 ? void 0 : config.useFipsEndpoint) !== null && _o !== void 0 ? _o : (function () { return Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT); }), utf8Decoder: (_p = config === null || config === void 0 ? void 0 : config.utf8Decoder) !== null && _p !== void 0 ? _p : fromUtf8, utf8Encoder: (_q = config === null || config === void 0 ? void 0 : config.utf8Encoder) !== null && _q !== void 0 ? _q : toUtf8 });\n};\n","import { parseUrl } from \"@aws-sdk/url-parser\";\nimport { defaultRegionInfoProvider } from \"./endpoints\";\nexport var getRuntimeConfig = function (config) {\n var _a, _b, _c, _d, _e;\n return ({\n apiVersion: \"2020-11-19\",\n disableHostPrefix: (_a = config === null || config === void 0 ? void 0 : config.disableHostPrefix) !== null && _a !== void 0 ? _a : false,\n logger: (_b = config === null || config === void 0 ? void 0 : config.logger) !== null && _b !== void 0 ? _b : {},\n regionInfoProvider: (_c = config === null || config === void 0 ? void 0 : config.regionInfoProvider) !== null && _c !== void 0 ? _c : defaultRegionInfoProvider,\n serviceId: (_d = config === null || config === void 0 ? void 0 : config.serviceId) !== null && _d !== void 0 ? _d : \"Location\",\n urlParser: (_e = config === null || config === void 0 ? void 0 : config.urlParser) !== null && _e !== void 0 ? _e : parseUrl,\n });\n};\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport var ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport var CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport var DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n return booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV);\n },\n configFileSelector: function (profile) { return booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG); },\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@aws-sdk/util-config-provider\";\nexport var ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport var CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport var DEFAULT_USE_FIPS_ENDPOINT = false;\nexport var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n return booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV);\n },\n configFileSelector: function (profile) { return booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG); },\n default: false,\n};\n","import { __extends } from \"tslib\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nvar LocationClient = (function (_super) {\n __extends(LocationClient, _super);\n function LocationClient(configuration) {\n var _this = this;\n var _config_0 = __getRuntimeConfig(configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveRetryConfig(_config_2);\n var _config_4 = resolveHostHeaderConfig(_config_3);\n var _config_5 = resolveAwsAuthConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getRecursionDetectionPlugin(_this.config));\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n LocationClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return LocationClient;\n}(__Client));\nexport { LocationClient };\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { normalizeProvider } from \"@aws-sdk/util-middleware\";\nimport { AdaptiveRetryStrategy } from \"./AdaptiveRetryStrategy\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES } from \"./config\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \".concat(ENV_MAX_ATTEMPTS, \" mast be a number, got \\\"\").concat(value, \"\\\"\"));\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \".concat(CONFIG_MAX_ATTEMPTS, \" mast be a number, got \\\"\").concat(value, \"\\\"\"));\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var _a;\n var maxAttempts = normalizeProvider((_a = input.maxAttempts) !== null && _a !== void 0 ? _a : DEFAULT_MAX_ATTEMPTS);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: function () { return __awaiter(void 0, void 0, void 0, function () {\n var retryMode;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (input.retryStrategy) {\n return [2, input.retryStrategy];\n }\n return [4, normalizeProvider(input.retryMode)()];\n case 1:\n retryMode = _a.sent();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return [2, new AdaptiveRetryStrategy(maxAttempts)];\n }\n return [2, new StandardRetryStrategy(maxAttempts)];\n }\n });\n }); } });\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport var resolveRegionConfig = function (input) {\n var region = input.region, useFipsEndpoint = input.useFipsEndpoint;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: function () { return __awaiter(void 0, void 0, void 0, function () {\n var providedRegion;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (typeof region === \"string\") {\n return [2, getRealRegion(region)];\n }\n return [4, region()];\n case 1:\n providedRegion = _a.sent();\n return [2, getRealRegion(providedRegion)];\n }\n });\n }); }, useFipsEndpoint: function () { return __awaiter(void 0, void 0, void 0, function () {\n var providedRegion, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(typeof region === \"string\")) return [3, 1];\n _a = region;\n return [3, 3];\n case 1: return [4, region()];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n providedRegion = _a;\n if (isFipsRegion(providedRegion)) {\n return [2, true];\n }\n return [2, typeof useFipsEndpoint === \"boolean\" ? Promise.resolve(useFipsEndpoint) : useFipsEndpoint()];\n }\n });\n }); } });\n};\n","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, next(args)];\n case 1:\n response = (_a.sent()).response;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4, deserializer(response, options)];\n case 3:\n parsed = _a.sent();\n return [2, {\n response: response,\n output: parsed,\n }];\n case 4:\n error_1 = _a.sent();\n Object.defineProperty(error_1, \"$response\", {\n value: response,\n });\n throw error_1;\n case 5: return [2];\n }\n });\n }); };\n };\n};\n","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) {\n return function (next, context) {\n return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var endpoint, request;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpoint = ((_a = context.endpointV2) === null || _a === void 0 ? void 0 : _a.url) && options.urlParser\n ? function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2, options.urlParser(context.endpointV2.url)];\n }); }); }\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n return [4, serializer(args.input, __assign(__assign({}, options), { endpoint: endpoint }))];\n case 1:\n request = _b.sent();\n return [2, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n }); };\n };\n};\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { SearchPlaceIndexForTextRequestFilterSensitiveLog, SearchPlaceIndexForTextResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1SearchPlaceIndexForTextCommand, serializeAws_restJson1SearchPlaceIndexForTextCommand, } from \"../protocols/Aws_restJson1\";\nvar SearchPlaceIndexForTextCommand = (function (_super) {\n __extends(SearchPlaceIndexForTextCommand, _super);\n function SearchPlaceIndexForTextCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n SearchPlaceIndexForTextCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"SearchPlaceIndexForTextCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: SearchPlaceIndexForTextRequestFilterSensitiveLog,\n outputFilterSensitiveLog: SearchPlaceIndexForTextResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n SearchPlaceIndexForTextCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1SearchPlaceIndexForTextCommand(input, context);\n };\n SearchPlaceIndexForTextCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1SearchPlaceIndexForTextCommand(output, context);\n };\n return SearchPlaceIndexForTextCommand;\n}($Command));\nexport { SearchPlaceIndexForTextCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { SearchPlaceIndexForSuggestionsRequestFilterSensitiveLog, SearchPlaceIndexForSuggestionsResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommand, serializeAws_restJson1SearchPlaceIndexForSuggestionsCommand, } from \"../protocols/Aws_restJson1\";\nvar SearchPlaceIndexForSuggestionsCommand = (function (_super) {\n __extends(SearchPlaceIndexForSuggestionsCommand, _super);\n function SearchPlaceIndexForSuggestionsCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n SearchPlaceIndexForSuggestionsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"SearchPlaceIndexForSuggestionsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: SearchPlaceIndexForSuggestionsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: SearchPlaceIndexForSuggestionsResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n SearchPlaceIndexForSuggestionsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1SearchPlaceIndexForSuggestionsCommand(input, context);\n };\n SearchPlaceIndexForSuggestionsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommand(output, context);\n };\n return SearchPlaceIndexForSuggestionsCommand;\n}($Command));\nexport { SearchPlaceIndexForSuggestionsCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetPlaceRequestFilterSensitiveLog, GetPlaceResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1GetPlaceCommand, serializeAws_restJson1GetPlaceCommand, } from \"../protocols/Aws_restJson1\";\nvar GetPlaceCommand = (function (_super) {\n __extends(GetPlaceCommand, _super);\n function GetPlaceCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n GetPlaceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"GetPlaceCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetPlaceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: GetPlaceResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetPlaceCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1GetPlaceCommand(input, context);\n };\n GetPlaceCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1GetPlaceCommand(output, context);\n };\n return GetPlaceCommand;\n}($Command));\nexport { GetPlaceCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { SearchPlaceIndexForPositionRequestFilterSensitiveLog, SearchPlaceIndexForPositionResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1SearchPlaceIndexForPositionCommand, serializeAws_restJson1SearchPlaceIndexForPositionCommand, } from \"../protocols/Aws_restJson1\";\nvar SearchPlaceIndexForPositionCommand = (function (_super) {\n __extends(SearchPlaceIndexForPositionCommand, _super);\n function SearchPlaceIndexForPositionCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n SearchPlaceIndexForPositionCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"SearchPlaceIndexForPositionCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: SearchPlaceIndexForPositionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: SearchPlaceIndexForPositionResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n SearchPlaceIndexForPositionCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1SearchPlaceIndexForPositionCommand(input, context);\n };\n SearchPlaceIndexForPositionCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1SearchPlaceIndexForPositionCommand(output, context);\n };\n return SearchPlaceIndexForPositionCommand;\n}($Command));\nexport { SearchPlaceIndexForPositionCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { GetGeofenceRequestFilterSensitiveLog, GetGeofenceResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1GetGeofenceCommand, serializeAws_restJson1GetGeofenceCommand, } from \"../protocols/Aws_restJson1\";\nvar GetGeofenceCommand = (function (_super) {\n __extends(GetGeofenceCommand, _super);\n function GetGeofenceCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n GetGeofenceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"GetGeofenceCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetGeofenceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: GetGeofenceResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetGeofenceCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1GetGeofenceCommand(input, context);\n };\n GetGeofenceCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1GetGeofenceCommand(output, context);\n };\n return GetGeofenceCommand;\n}($Command));\nexport { GetGeofenceCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { ListGeofencesRequestFilterSensitiveLog, ListGeofencesResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1ListGeofencesCommand, serializeAws_restJson1ListGeofencesCommand, } from \"../protocols/Aws_restJson1\";\nvar ListGeofencesCommand = (function (_super) {\n __extends(ListGeofencesCommand, _super);\n function ListGeofencesCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n ListGeofencesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"ListGeofencesCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListGeofencesRequestFilterSensitiveLog,\n outputFilterSensitiveLog: ListGeofencesResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListGeofencesCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1ListGeofencesCommand(input, context);\n };\n ListGeofencesCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1ListGeofencesCommand(output, context);\n };\n return ListGeofencesCommand;\n}($Command));\nexport { ListGeofencesCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { BatchPutGeofenceRequestFilterSensitiveLog, BatchPutGeofenceResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1BatchPutGeofenceCommand, serializeAws_restJson1BatchPutGeofenceCommand, } from \"../protocols/Aws_restJson1\";\nvar BatchPutGeofenceCommand = (function (_super) {\n __extends(BatchPutGeofenceCommand, _super);\n function BatchPutGeofenceCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n BatchPutGeofenceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"BatchPutGeofenceCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: BatchPutGeofenceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: BatchPutGeofenceResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n BatchPutGeofenceCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1BatchPutGeofenceCommand(input, context);\n };\n BatchPutGeofenceCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1BatchPutGeofenceCommand(output, context);\n };\n return BatchPutGeofenceCommand;\n}($Command));\nexport { BatchPutGeofenceCommand };\n","import { __extends } from \"tslib\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport { BatchDeleteGeofenceRequestFilterSensitiveLog, BatchDeleteGeofenceResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { deserializeAws_restJson1BatchDeleteGeofenceCommand, serializeAws_restJson1BatchDeleteGeofenceCommand, } from \"../protocols/Aws_restJson1\";\nvar BatchDeleteGeofenceCommand = (function (_super) {\n __extends(BatchDeleteGeofenceCommand, _super);\n function BatchDeleteGeofenceCommand(input) {\n var _this = _super.call(this) || this;\n _this.input = input;\n return _this;\n }\n BatchDeleteGeofenceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"LocationClient\";\n var commandName = \"BatchDeleteGeofenceCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: BatchDeleteGeofenceRequestFilterSensitiveLog,\n outputFilterSensitiveLog: BatchDeleteGeofenceResponseFilterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n BatchDeleteGeofenceCommand.prototype.serialize = function (input, context) {\n return serializeAws_restJson1BatchDeleteGeofenceCommand(input, context);\n };\n BatchDeleteGeofenceCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restJson1BatchDeleteGeofenceCommand(output, context);\n };\n return BatchDeleteGeofenceCommand;\n}($Command));\nexport { BatchDeleteGeofenceCommand };\n","import { getCoords } from \"@turf/invariant\";\n/**\n * Takes a ring and return true or false whether or not the ring is clockwise or counter-clockwise.\n *\n * @name booleanClockwise\n * @param {Feature|LineString|Array>} line to be evaluated\n * @returns {boolean} true/false\n * @example\n * var clockwiseRing = turf.lineString([[0,0],[1,1],[1,0],[0,0]]);\n * var counterClockwiseRing = turf.lineString([[0,0],[1,0],[1,1],[0,0]]);\n *\n * turf.booleanClockwise(clockwiseRing)\n * //=true\n * turf.booleanClockwise(counterClockwiseRing)\n * //=false\n */\nexport default function booleanClockwise(line) {\n var ring = getCoords(line);\n var sum = 0;\n var i = 1;\n var prev;\n var cur;\n while (i < ring.length) {\n prev = cur || ring[0];\n cur = ring[i];\n sum += (cur[0] - prev[0]) * (cur[1] + prev[1]);\n i++;\n }\n return sum > 0;\n}\n","import { isNumber, } from \"@turf/helpers\";\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array|Geometry|Feature} coord GeoJSON Point or an Array of numbers\n * @returns {Array} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nexport function getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nexport function getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nexport function containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n isNumber(coordinates[0]) &&\n isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nexport function featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nexport function getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nexport function getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\n","import { __assign, __read } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport booleanClockwise from '@turf/boolean-clockwise';\nexport function validateCoordinates(lng, lat) {\n if (!Number.isFinite(lng) || !Number.isFinite(lat)) {\n throw new Error(\"Invalid coordinates: [\" + lng + \",\" + lat + \"]\");\n }\n if (lat < -90 || 90 < lat) {\n throw new Error('Latitude must be between -90 and 90 degrees inclusive.');\n }\n else if (lng < -180 || 180 < lng) {\n throw new Error('Longitude must be between -180 and 180 degrees inclusive.');\n }\n}\nexport function validateGeofenceId(geofenceId) {\n var geofenceIdRegex = /^[-._\\p{L}\\p{N}]+$/iu;\n // Check if geofenceId is valid\n if (!geofenceIdRegex.test(geofenceId)) {\n throw new Error(\"Invalid geofenceId: '\" + geofenceId + \"' - IDs can only contain alphanumeric characters, hyphens, underscores and periods.\");\n }\n}\nexport function validateLinearRing(linearRing, geofenceId) {\n var errorPrefix = geofenceId ? geofenceId + \": \" : '';\n // Validate LinearRing size, must be at least 4 points\n if (linearRing.length < 4) {\n throw new Error(errorPrefix + \"LinearRing must contain 4 or more coordinates.\");\n }\n // Validate all coordinates are valid, error with which ones are bad\n var badCoordinates = [];\n linearRing.forEach(function (coordinates) {\n try {\n validateCoordinates(coordinates[0], coordinates[1]);\n }\n catch (error) {\n badCoordinates.push({ coordinates: coordinates, error: error.message });\n }\n });\n if (badCoordinates.length > 0) {\n throw new Error(errorPrefix + \"One or more of the coordinates in the Polygon LinearRing are not valid: \" + JSON.stringify(badCoordinates));\n }\n // Validate first and last coordinates are the same\n var _a = __read(linearRing[0], 2), lngA = _a[0], latA = _a[1];\n var _b = __read(linearRing[linearRing.length - 1], 2), lngB = _b[0], latB = _b[1];\n if (lngA !== lngB || latA !== latB) {\n throw new Error(errorPrefix + \"LinearRing's first and last coordinates are not the same\");\n }\n if (booleanClockwise(linearRing)) {\n throw new Error(errorPrefix + \"LinearRing coordinates must be wound counterclockwise\");\n }\n}\nexport function validatePolygon(polygon, geofenceId) {\n var errorPrefix = geofenceId ? geofenceId + \": \" : '';\n if (!Array.isArray(polygon)) {\n throw new Error(errorPrefix + \"Polygon is of incorrect structure. It should be an array of LinearRings\");\n }\n if (polygon.length < 1) {\n throw new Error(errorPrefix + \"Polygon must have a single LinearRing array.\");\n }\n if (polygon.length > 1) {\n throw new Error(errorPrefix + \"Polygon must have a single LinearRing array. Note: We do not currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.\");\n }\n var verticesCount = polygon.reduce(function (prev, linearRing) { return prev + linearRing.length; }, 0);\n if (verticesCount > 1000) {\n throw new Error(errorPrefix + \"Polygon has more than the maximum 1000 vertices.\");\n }\n polygon.forEach(function (linearRing) {\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexport function validateGeofencesInput(geofences) {\n var geofenceIds = {};\n geofences.forEach(function (geofence) {\n // verify all required properties are present\n // Validate geofenceId exists\n if (!geofence.geofenceId) {\n throw new Error(\"Geofence '\" + geofence + \"' is missing geofenceId\");\n }\n var geofenceId = geofence.geofenceId;\n validateGeofenceId(geofenceId);\n // Validate geofenceId is unique\n if (geofenceIds[geofenceId]) {\n throw new Error(\"Duplicate geofenceId: \" + geofenceId);\n }\n else {\n geofenceIds[geofenceId] = true;\n }\n // Validate geometry exists\n if (!geofence.geometry) {\n throw new Error(\"Geofence '\" + geofenceId + \"' is missing geometry\");\n }\n var geometry = geofence.geometry;\n // Validate polygon exists\n if (!geometry.polygon) {\n throw new Error(\"Geofence '\" + geofenceId + \"' is missing geometry.polygon\");\n }\n var polygon = geometry.polygon;\n // Validate polygon length and structure\n try {\n validatePolygon(polygon, geofenceId);\n }\n catch (error) {\n if (error.message.includes('Polygon has more than the maximum 1000 vertices.')) {\n throw new Error(\"Geofence '\" + geofenceId + \"' has more than the maximum of 1000 vertices\");\n }\n }\n // Validate LinearRing length, structure, and coordinates\n var _a = __read(polygon, 1), linearRing = _a[0];\n validateLinearRing(linearRing, geofenceId);\n });\n}\nexport function mapSearchOptions(options, locationServiceInput) {\n var locationServiceModifiedInput = __assign({}, locationServiceInput);\n locationServiceModifiedInput.FilterCountries = options.countries;\n locationServiceModifiedInput.MaxResults = options.maxResults;\n if (options.searchIndexName) {\n locationServiceModifiedInput.IndexName = options.searchIndexName;\n }\n if (options['biasPosition'] && options['searchAreaConstraints']) {\n throw new Error('BiasPosition and SearchAreaConstraints are mutually exclusive, please remove one or the other from the options object');\n }\n if (options['biasPosition']) {\n locationServiceModifiedInput.BiasPosition = options['biasPosition'];\n }\n if (options['searchAreaConstraints']) {\n locationServiceModifiedInput.FilterBBox = options['searchAreaConstraints'];\n }\n return locationServiceModifiedInput;\n}\n//# sourceMappingURL=util.js.map","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport camelcaseKeys from 'camelcase-keys';\nimport { ConsoleLogger as Logger, Credentials, getAmplifyUserAgentObject, } from '@aws-amplify/core';\nimport { LocationClient, SearchPlaceIndexForTextCommand, SearchPlaceIndexForSuggestionsCommand, SearchPlaceIndexForPositionCommand, BatchPutGeofenceCommand, GetPlaceCommand, GetGeofenceCommand, ListGeofencesCommand, BatchDeleteGeofenceCommand, } from '@aws-sdk/client-location';\nimport { mapSearchOptions, validateGeofenceId, validateGeofencesInput, } from '../util';\nvar logger = new Logger('AmazonLocationServiceProvider');\nvar AmazonLocationServiceProvider = /** @class */ (function () {\n /**\n * Initialize Geo with AWS configurations\n * @param {Object} config - Configuration object for Geo\n */\n function AmazonLocationServiceProvider(config) {\n this._config = config ? config : {};\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the category of the plugin\n * @returns {string} name of the category\n */\n AmazonLocationServiceProvider.prototype.getCategory = function () {\n return AmazonLocationServiceProvider.CATEGORY;\n };\n /**\n * get provider name of the plugin\n * @returns {string} name of the provider\n */\n AmazonLocationServiceProvider.prototype.getProviderName = function () {\n return AmazonLocationServiceProvider.PROVIDER_NAME;\n };\n /**\n * Configure Geo part with aws configuration\n * @param {Object} config - Configuration of the Geo\n * @return {Object} - Current configuration\n */\n AmazonLocationServiceProvider.prototype.configure = function (config) {\n logger.debug('configure Amazon Location Service Provider', config);\n if (!config)\n return this._config;\n this._config = Object.assign({}, this._config, config);\n return this._config;\n };\n /**\n * Get the map resources that are currently available through the provider\n * @returns {AmazonLocationServiceMapStyle[]}- Array of available map resources\n */\n AmazonLocationServiceProvider.prototype.getAvailableMaps = function () {\n this._verifyMapResources();\n var mapStyles = [];\n var availableMaps = this._config.maps.items;\n var region = this._config.region;\n for (var mapName in availableMaps) {\n var style = availableMaps[mapName].style;\n mapStyles.push({ mapName: mapName, style: style, region: region });\n }\n return mapStyles;\n };\n /**\n * Get the map resource set as default in amplify config\n * @returns {AmazonLocationServiceMapStyle} - Map resource set as the default in amplify config\n */\n AmazonLocationServiceProvider.prototype.getDefaultMap = function () {\n this._verifyMapResources();\n var mapName = this._config.maps.default;\n var style = this._config.maps.items[mapName].style;\n var region = this._config.region;\n return { mapName: mapName, style: style, region: region };\n };\n /**\n * Search by text input with optional parameters\n * @param {string} text - The text string that is to be searched for\n * @param {SearchByTextOptions} options? - Optional parameters to the search\n * @returns {Promise} - Promise resolves to a list of Places that match search parameters\n */\n AmazonLocationServiceProvider.prototype.searchByText = function (text, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, locationServiceInput, client, command, response, error_1, PascalResults, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);\n locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = __assign(__assign({}, locationServiceInput), mapSearchOptions(options, locationServiceInput));\n }\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n command = new SearchPlaceIndexForTextCommand(locationServiceInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_1 = _a.sent();\n logger.debug(error_1);\n throw error_1;\n case 5:\n PascalResults = response.Results.map(function (result) { return result.Place; });\n results = camelcaseKeys(PascalResults, {\n deep: true,\n });\n return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * Search for suggestions based on the input text\n * @param {string} text - The text string that is to be searched for\n * @param {SearchByTextOptions} options? - Optional parameters to the search\n * @returns {Promise} - Resolves to an array of search suggestion strings\n */\n AmazonLocationServiceProvider.prototype.searchForSuggestions = function (text, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, locationServiceInput, client, command, response, error_2, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);\n locationServiceInput = {\n Text: text,\n IndexName: this._config.search_indices.default,\n };\n /**\n * Map search options to Amazon Location Service input object\n */\n if (options) {\n locationServiceInput = __assign(__assign({}, locationServiceInput), mapSearchOptions(options, locationServiceInput));\n }\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n command = new SearchPlaceIndexForSuggestionsCommand(locationServiceInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_2 = _a.sent();\n logger.debug(error_2);\n throw error_2;\n case 5:\n results = response.Results.map(function (result) { return ({\n text: result.Text,\n placeId: result.PlaceId,\n }); });\n return [2 /*return*/, results];\n }\n });\n });\n };\n AmazonLocationServiceProvider.prototype._verifyPlaceId = function (placeId) {\n if (placeId.length === 0) {\n var errorString = 'PlaceId cannot be an empty string.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n };\n AmazonLocationServiceProvider.prototype.searchByPlaceId = function (placeId, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, client, searchByPlaceIdInput, command, response, error_3, place;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);\n this._verifyPlaceId(placeId);\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n searchByPlaceIdInput = {\n PlaceId: placeId,\n IndexName: (options === null || options === void 0 ? void 0 : options.searchIndexName) || this._config.search_indices.default,\n };\n command = new GetPlaceCommand(searchByPlaceIdInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_3 = _a.sent();\n logger.debug(error_3);\n throw error_3;\n case 5:\n place = response.Place;\n if (place) {\n return [2 /*return*/, camelcaseKeys(place, { deep: true })];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates - Coordinates array for the search input\n * @param options - Options parameters for the search\n * @returns {Promise} - Promise that resolves to a place matching search coordinates\n */\n AmazonLocationServiceProvider.prototype.searchByCoordinates = function (coordinates, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, locationServiceInput, client, command, response, error_4, PascalResults, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifySearchIndex(options === null || options === void 0 ? void 0 : options.searchIndexName);\n locationServiceInput = {\n Position: coordinates,\n IndexName: this._config.search_indices.default,\n };\n if (options) {\n if (options.searchIndexName) {\n locationServiceInput.IndexName = options.searchIndexName;\n }\n locationServiceInput.MaxResults = options.maxResults;\n }\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n command = new SearchPlaceIndexForPositionCommand(locationServiceInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_4 = _a.sent();\n logger.debug(error_4);\n throw error_4;\n case 5:\n PascalResults = response.Results.map(function (result) { return result.Place; });\n results = camelcaseKeys(PascalResults[0], {\n deep: true,\n });\n return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * Create geofences inside of a geofence collection\n * @param geofences - Array of geofence objects to create\n * @param options? - Optional parameters for creating geofences\n * @returns {Promise} - Promise that resolves to an object with:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n AmazonLocationServiceProvider.prototype.saveGeofences = function (geofences, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, PascalGeofences, results, geofenceBatches, apiLimit;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (geofences.length < 1) {\n throw new Error('Geofence input array is empty');\n }\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n validateGeofencesInput(geofences);\n PascalGeofences = geofences.map(function (_a) {\n var geofenceId = _a.geofenceId, polygon = _a.geometry.polygon;\n return {\n GeofenceId: geofenceId,\n Geometry: {\n Polygon: polygon,\n },\n };\n });\n results = {\n successes: [],\n errors: [],\n };\n geofenceBatches = [];\n while (PascalGeofences.length > 0) {\n apiLimit = 10;\n geofenceBatches.push(PascalGeofences.splice(0, apiLimit));\n }\n return [4 /*yield*/, Promise.all(geofenceBatches.map(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var response, error_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._AmazonLocationServiceBatchPutGeofenceCall(batch, (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections.default)];\n case 1:\n response = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_5 = _a.sent();\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(function (geofence) {\n results.errors.push({\n geofenceId: geofence.GeofenceId,\n error: {\n code: 'APIConnectionError',\n message: error_5.message,\n },\n });\n });\n return [2 /*return*/];\n case 3:\n // Push all successes to results\n response.Successes.forEach(function (success) {\n var GeofenceId = success.GeofenceId, CreateTime = success.CreateTime, UpdateTime = success.UpdateTime;\n results.successes.push({\n geofenceId: GeofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n });\n });\n // Push all errors to results\n response.Errors.forEach(function (error) {\n var _a = error.Error, Code = _a.Code, Message = _a.Message, GeofenceId = error.GeofenceId;\n results.errors.push({\n error: {\n code: Code,\n message: Message,\n },\n geofenceId: GeofenceId,\n });\n });\n return [2 /*return*/];\n }\n });\n }); }))];\n case 2:\n _a.sent();\n return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * Get geofence from a geofence collection\n * @param geofenceId:string\n * @param options?: Optional parameters for getGeofence\n * @returns {Promise} - Promise that resolves to a geofence object\n */\n AmazonLocationServiceProvider.prototype.getGeofence = function (geofenceId, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, client, commandInput, command, response, error_6, GeofenceId, CreateTime, UpdateTime, Status, Geometry, geofence;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n validateGeofenceId(geofenceId);\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n commandInput = {\n GeofenceId: geofenceId,\n CollectionName: (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections.default,\n };\n command = new GetGeofenceCommand(commandInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_6 = _a.sent();\n logger.debug(error_6);\n throw error_6;\n case 5:\n GeofenceId = response.GeofenceId, CreateTime = response.CreateTime, UpdateTime = response.UpdateTime, Status = response.Status, Geometry = response.Geometry;\n geofence = {\n createTime: CreateTime,\n geofenceId: GeofenceId,\n geometry: {\n polygon: Geometry.Polygon,\n },\n status: Status,\n updateTime: UpdateTime,\n };\n return [2 /*return*/, geofence];\n }\n });\n });\n };\n /**\n * List geofences from a geofence collection\n * @param options?: ListGeofenceOptions\n * @returns {Promise} - Promise that resolves to an object with:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n AmazonLocationServiceProvider.prototype.listGeofences = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, client, listGeofencesInput, command, response, error_7, NextToken, Entries, results;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n // Verify geofence collection exists in aws-config.js\n try {\n this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);\n }\n catch (error) {\n logger.debug(error);\n throw error;\n }\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n listGeofencesInput = {\n NextToken: options === null || options === void 0 ? void 0 : options.nextToken,\n CollectionName: (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections.default,\n };\n command = new ListGeofencesCommand(listGeofencesInput);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, client.send(command)];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n error_7 = _a.sent();\n logger.debug(error_7);\n throw error_7;\n case 5:\n NextToken = response.NextToken, Entries = response.Entries;\n results = {\n entries: Entries.map(function (_a) {\n var GeofenceId = _a.GeofenceId, CreateTime = _a.CreateTime, UpdateTime = _a.UpdateTime, Status = _a.Status, Polygon = _a.Geometry.Polygon;\n return {\n geofenceId: GeofenceId,\n createTime: CreateTime,\n updateTime: UpdateTime,\n status: Status,\n geometry: {\n polygon: Polygon,\n },\n };\n }),\n nextToken: NextToken,\n };\n return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * Delete geofences from a geofence collection\n * @param geofenceIds: string|string[]\n * @param options?: GeofenceOptions\n * @returns {Promise} - Promise that resolves to an object with:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n AmazonLocationServiceProvider.prototype.deleteGeofences = function (geofenceIds, options) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, badGeofenceIds, results, geofenceIdBatches, count;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (geofenceIds.length < 1) {\n throw new Error('GeofenceId input array is empty');\n }\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n this._verifyGeofenceCollections(options === null || options === void 0 ? void 0 : options.collectionName);\n badGeofenceIds = geofenceIds.filter(function (geofenceId) {\n try {\n validateGeofenceId(geofenceId);\n }\n catch (error) {\n return true;\n }\n });\n if (badGeofenceIds.length > 0) {\n throw new Error(\"Invalid geofence ids: \" + badGeofenceIds.join(', '));\n }\n results = {\n successes: [],\n errors: [],\n };\n geofenceIdBatches = [];\n count = 0;\n while (count < geofenceIds.length) {\n geofenceIdBatches.push(geofenceIds.slice(count, (count += 10)));\n }\n return [4 /*yield*/, Promise.all(geofenceIdBatches.map(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var response, error_8, badGeofenceIds;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._AmazonLocationServiceBatchDeleteGeofenceCall(batch, (options === null || options === void 0 ? void 0 : options.collectionName) || this._config.geofenceCollections.default)];\n case 1:\n response = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n error_8 = _b.sent();\n // If the API call fails, add the geofences to the errors array and move to next batch\n batch.forEach(function (geofenceId) {\n var errorObject = {\n geofenceId: geofenceId,\n error: {\n code: error_8.message,\n message: error_8.message,\n },\n };\n results.errors.push(errorObject);\n });\n return [2 /*return*/];\n case 3:\n badGeofenceIds = response.Errors.map(function (_a) {\n var geofenceId = _a.geofenceId;\n return geofenceId;\n });\n (_a = results.successes).push.apply(_a, __spread(batch.filter(function (Id) { return !badGeofenceIds.includes(Id); })));\n return [2 /*return*/];\n }\n });\n }); }))];\n case 2:\n _a.sent();\n return [2 /*return*/, results];\n }\n });\n });\n };\n /**\n * @private\n */\n AmazonLocationServiceProvider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, cred, error_9;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, false];\n cred = Credentials.shear(credentials);\n logger.debug('Set credentials for storage. Credentials are:', cred);\n this._config.credentials = cred;\n return [2 /*return*/, true];\n case 2:\n error_9 = _a.sent();\n logger.debug('Ensure credentials error. Credentials are:', error_9);\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AmazonLocationServiceProvider.prototype._verifyMapResources = function () {\n if (!this._config.maps) {\n var errorString = \"No map resources found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n if (!this._config.maps.default) {\n var errorString = \"No default map resource found in amplify config, run 'amplify add geo' to create one and run `amplify push` after\";\n logger.debug(errorString);\n throw new Error(errorString);\n }\n };\n AmazonLocationServiceProvider.prototype._verifySearchIndex = function (optionalSearchIndex) {\n if ((!this._config.search_indices || !this._config.search_indices.default) &&\n !optionalSearchIndex) {\n var errorString = 'No Search Index found in amplify config, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n };\n AmazonLocationServiceProvider.prototype._verifyGeofenceCollections = function (optionalGeofenceCollectionName) {\n if ((!this._config.geofenceCollections ||\n !this._config.geofenceCollections.default) &&\n !optionalGeofenceCollectionName) {\n var errorString = 'No Geofence Collections found, please run `amplify add geo` to create one and run `amplify push` after.';\n logger.debug(errorString);\n throw new Error(errorString);\n }\n };\n AmazonLocationServiceProvider.prototype._AmazonLocationServiceBatchPutGeofenceCall = function (PascalGeofences, collectionName) {\n return __awaiter(this, void 0, void 0, function () {\n var geofenceInput, client, command, response, error_10;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n geofenceInput = {\n Entries: PascalGeofences,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n command = new BatchPutGeofenceCommand(geofenceInput);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, client.send(command)];\n case 2:\n response = _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_10 = _a.sent();\n throw error_10;\n case 4: return [2 /*return*/, response];\n }\n });\n });\n };\n AmazonLocationServiceProvider.prototype._AmazonLocationServiceBatchDeleteGeofenceCall = function (geofenceIds, collectionName) {\n return __awaiter(this, void 0, void 0, function () {\n var deleteGeofencesInput, client, command, response, error_11;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n deleteGeofencesInput = {\n GeofenceIds: geofenceIds,\n CollectionName: collectionName || this._config.geofenceCollections.default,\n };\n client = new LocationClient({\n credentials: this._config.credentials,\n region: this._config.region,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n command = new BatchDeleteGeofenceCommand(deleteGeofencesInput);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, client.send(command)];\n case 2:\n response = _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_11 = _a.sent();\n throw error_11;\n case 4: return [2 /*return*/, response];\n }\n });\n });\n };\n AmazonLocationServiceProvider.CATEGORY = 'Geo';\n AmazonLocationServiceProvider.PROVIDER_NAME = 'AmazonLocationService';\n return AmazonLocationServiceProvider;\n}());\nexport { AmazonLocationServiceProvider };\n//# sourceMappingURL=AmazonLocationServiceProvider.js.map","import { __awaiter, __generator, __read } from \"tslib\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, ConsoleLogger as Logger, parseAWSExports, } from '@aws-amplify/core';\nimport { AmazonLocationServiceProvider } from './Providers/AmazonLocationServiceProvider';\nimport { validateCoordinates } from './util';\nvar logger = new Logger('Geo');\nvar DEFAULT_PROVIDER = 'AmazonLocationService';\nvar GeoClass = /** @class */ (function () {\n function GeoClass() {\n this._config = {};\n this._pluggables = [];\n logger.debug('Geo Options', this._config);\n }\n /**\n * get the name of the module category\n * @returns {string} name of the module category\n */\n GeoClass.prototype.getModuleName = function () {\n return GeoClass.MODULE;\n };\n /**\n * add plugin into Geo category\n * @param {Object} pluggable - an instance of the plugin\n */\n GeoClass.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Geo') {\n this._pluggables.push(pluggable);\n var config = pluggable.configure(this._config[pluggable.getProviderName()]);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n GeoClass.prototype.getPluggable = function (providerName) {\n var pluggable = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n throw new Error('No plugin found in Geo for the provider');\n }\n else\n return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n GeoClass.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n return;\n };\n /**\n * Configure Geo\n * @param {Object} config - Configuration object for Geo\n * @return {Object} - Current configuration\n */\n GeoClass.prototype.configure = function (config) {\n var _this = this;\n logger.debug('configure Geo');\n if (!config)\n return this._config;\n var amplifyConfig = parseAWSExports(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Geo, config);\n this._pluggables.forEach(function (pluggable) {\n pluggable.configure(_this._config[pluggable.getProviderName()]);\n });\n if (this._pluggables.length === 0) {\n this.addPluggable(new AmazonLocationServiceProvider());\n }\n return this._config;\n };\n /**\n * Get the map resources that are currently available through the provider\n * @param {string} provider\n * @returns - Array of available map resources\n */\n GeoClass.prototype.getAvailableMaps = function (provider) {\n if (provider === void 0) { provider = DEFAULT_PROVIDER; }\n var prov = this.getPluggable(provider);\n return prov.getAvailableMaps();\n };\n /**\n * Get the map resource set as default in amplify config\n * @param {string} provider\n * @returns - Map resource set as the default in amplify config\n */\n GeoClass.prototype.getDefaultMap = function (provider) {\n if (provider === void 0) { provider = DEFAULT_PROVIDER; }\n var prov = this.getPluggable(provider);\n return prov.getDefaultMap();\n };\n /**\n * Search by text input with optional parameters\n * @param {string} text - The text string that is to be searched for\n * @param {SearchByTextOptions} options? - Optional parameters to the search\n * @returns {Promise} - Promise resolves to a list of Places that match search parameters\n */\n GeoClass.prototype.searchByText = function (text, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.searchByText(text, options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_1 = _b.sent();\n logger.debug(error_1);\n throw error_1;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Search for search term suggestions based on input text\n * @param {string} text - The text string that is to be search for\n * @param {SearchByTextOptions} options? - Optional parameters to the search\n * @returns {Promise} - Resolves to an array of search suggestion strings\n */\n GeoClass.prototype.searchForSuggestions = function (text, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, error_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.searchForSuggestions(text, options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_2 = _b.sent();\n logger.debug(error_2);\n throw error_2;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Search for location by unique ID\n * @param {string} placeId - Unique ID of the location that is to be searched for\n * @param {searchByPlaceIdOptions} options? - Optional parameters to the search\n * @returns {Promise} - Resolves to a place with the given placeId\n */\n GeoClass.prototype.searchByPlaceId = function (placeId, options) {\n return __awaiter(this, void 0, void 0, function () {\n var providerName, prov, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n providerName = DEFAULT_PROVIDER;\n prov = this.getPluggable(providerName);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.searchByPlaceId(placeId, options)];\n case 2: return [2 /*return*/, _a.sent()];\n case 3:\n error_3 = _a.sent();\n logger.debug(error_3);\n throw error_3;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Reverse geocoding search via a coordinate point on the map\n * @param coordinates - Coordinates array for the search input\n * @param options - Options parameters for the search\n * @returns {Promise} - Promise that resolves to a place matching search coordinates\n */\n GeoClass.prototype.searchByCoordinates = function (coordinates, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, _b, lng, lat, error_4;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n _b = __read(coordinates, 2), lng = _b[0], lat = _b[1];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n validateCoordinates(lng, lat);\n return [4 /*yield*/, prov.searchByCoordinates(coordinates, options)];\n case 2: return [2 /*return*/, _c.sent()];\n case 3:\n error_4 = _c.sent();\n logger.debug(error_4);\n throw error_4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Create geofences\n * @param geofences - Single or array of geofence objects to create\n * @param options? - Optional parameters for creating geofences\n * @returns {Promise} - Promise that resolves to an object with:\n * successes: list of geofences successfully created\n * errors: list of geofences that failed to create\n */\n GeoClass.prototype.saveGeofences = function (geofences, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, geofenceInputArray, error_5;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n if (!Array.isArray(geofences)) {\n geofenceInputArray = [geofences];\n }\n else {\n geofenceInputArray = geofences;\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.saveGeofences(geofenceInputArray, options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_5 = _b.sent();\n logger.debug(error_5);\n throw error_5;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get a single geofence by geofenceId\n * @param geofenceId: GeofenceId - The string id of the geofence to get\n * @param options?: GeofenceOptions - Optional parameters for getting a geofence\n * @returns Promise - Promise that resolves to a geofence object\n */\n GeoClass.prototype.getGeofence = function (geofenceId, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, error_6;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.getGeofence(geofenceId, options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_6 = _b.sent();\n logger.debug(error_6);\n throw error_6;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * List geofences\n * @param options?: ListGeofenceOptions\n * @returns {Promise} - Promise that resolves to an object with:\n * entries: list of geofences - 100 geofences are listed per page\n * nextToken: token for next page of geofences\n */\n GeoClass.prototype.listGeofences = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, error_7;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.listGeofences(options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_7 = _b.sent();\n logger.debug(error_7);\n throw error_7;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Delete geofences\n * @param geofenceIds: string|string[]\n * @param options?: GeofenceOptions\n * @returns {Promise} - Promise that resolves to an object with:\n * successes: list of geofences successfully deleted\n * errors: list of geofences that failed to delete\n */\n GeoClass.prototype.deleteGeofences = function (geofenceIds, options) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, providerName, prov, geofenceIdsInputArray, error_8;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = (options || {}).providerName, providerName = _a === void 0 ? DEFAULT_PROVIDER : _a;\n prov = this.getPluggable(providerName);\n if (!Array.isArray(geofenceIds)) {\n geofenceIdsInputArray = [geofenceIds];\n }\n else {\n geofenceIdsInputArray = geofenceIds;\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, prov.deleteGeofences(geofenceIdsInputArray, options)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n error_8 = _b.sent();\n logger.debug(error_8);\n throw error_8;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n GeoClass.MODULE = 'Geo';\n return GeoClass;\n}());\nexport { GeoClass };\nexport var Geo = new GeoClass();\nAmplify.register(Geo);\n//# sourceMappingURL=Geo.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\nconst mapObj = require('map-obj');\nconst camelCase = require('camelcase');\nconst QuickLru = require('quick-lru');\n\nconst has = (array, key) => array.some(x => {\n\tif (typeof x === 'string') {\n\t\treturn x === key;\n\t}\n\n\tx.lastIndex = 0;\n\treturn x.test(key);\n});\n\nconst cache = new QuickLru({maxSize: 100000});\n\n// Reproduces behavior from `map-obj`\nconst isObject = value =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t!(value instanceof RegExp) &&\n\t!(value instanceof Error) &&\n\t!(value instanceof Date);\n\nconst camelCaseConvert = (input, options) => {\n\tif (!isObject(input)) {\n\t\treturn input;\n\t}\n\n\toptions = {\n\t\tdeep: false,\n\t\tpascalCase: false,\n\t\t...options\n\t};\n\n\tconst {exclude, pascalCase, stopPaths, deep} = options;\n\n\tconst stopPathsSet = new Set(stopPaths);\n\n\tconst makeMapper = parentPath => (key, value) => {\n\t\tif (deep && isObject(value)) {\n\t\t\tconst path = parentPath === undefined ? key : `${parentPath}.${key}`;\n\n\t\t\tif (!stopPathsSet.has(path)) {\n\t\t\t\tvalue = mapObj(value, makeMapper(path));\n\t\t\t}\n\t\t}\n\n\t\tif (!(exclude && has(exclude, key))) {\n\t\t\tconst cacheKey = pascalCase ? `${key}_` : key;\n\n\t\t\tif (cache.has(cacheKey)) {\n\t\t\t\tkey = cache.get(cacheKey);\n\t\t\t} else {\n\t\t\t\tconst ret = camelCase(key, {pascalCase});\n\n\t\t\t\tif (key.length < 100) { // Prevent abuse\n\t\t\t\t\tcache.set(cacheKey, ret);\n\t\t\t\t}\n\n\t\t\t\tkey = ret;\n\t\t\t}\n\t\t}\n\n\t\treturn [key, value];\n\t};\n\n\treturn mapObj(input, makeMapper(undefined));\n};\n\nmodule.exports = (input, options) => {\n\tif (Array.isArray(input)) {\n\t\treturn Object.keys(input).map(key => camelCaseConvert(input[key], options));\n\t}\n\n\treturn camelCaseConvert(input, options);\n};\n","'use strict';\n\nconst isObject = value => typeof value === 'object' && value !== null;\nconst mapObjectSkip = Symbol('skip');\n\n// Customized for this use-case\nconst isObjectCustom = value =>\n\tisObject(value) &&\n\t!(value instanceof RegExp) &&\n\t!(value instanceof Error) &&\n\t!(value instanceof Date);\n\nconst mapObject = (object, mapper, options, isSeen = new WeakMap()) => {\n\toptions = {\n\t\tdeep: false,\n\t\ttarget: {},\n\t\t...options\n\t};\n\n\tif (isSeen.has(object)) {\n\t\treturn isSeen.get(object);\n\t}\n\n\tisSeen.set(object, options.target);\n\n\tconst {target} = options;\n\tdelete options.target;\n\n\tconst mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);\n\tif (Array.isArray(object)) {\n\t\treturn mapArray(object);\n\t}\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst mapResult = mapper(key, value, object);\n\n\t\tif (mapResult === mapObjectSkip) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;\n\n\t\t// Drop `__proto__` keys.\n\t\tif (newKey === '__proto__') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (options.deep && shouldRecurse && isObjectCustom(newValue)) {\n\t\t\tnewValue = Array.isArray(newValue) ?\n\t\t\t\tmapArray(newValue) :\n\t\t\t\tmapObject(newValue, mapper, options, isSeen);\n\t\t}\n\n\t\ttarget[newKey] = newValue;\n\t}\n\n\treturn target;\n};\n\nmodule.exports = (object, mapper, options) => {\n\tif (!isObject(object)) {\n\t\tthrow new TypeError(`Expected an object, got \\`${object}\\` (${typeof object})`);\n\t}\n\n\treturn mapObject(object, mapper, options);\n};\n\nmodule.exports.mapObjectSkip = mapObjectSkip;\n","'use strict';\n\nclass QuickLRU {\n\tconstructor(options = {}) {\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst value = this.oldCache.get(key);\n\t\t\tthis.oldCache.delete(key);\n\t\t\tthis._set(key, value);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tset(key, value) {\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, value);\n\t\t} else {\n\t\t\tthis._set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\thas(key) {\n\t\treturn this.cache.has(key) || this.oldCache.has(key);\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this.oldCache.get(key);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tyield item;\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget size() {\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn this._size + oldCacheSize;\n\t}\n}\n\nmodule.exports = QuickLRU;\n","'use strict';\n\nconst preserveCamelCase = string => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = global.fetch;\n//# sourceMappingURL=fetch.js.map","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-app-tsx\": () => import(\"./../../../src/pages/app.tsx\" /* webpackChunkName: \"component---src-pages-app-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-login-tsx\": () => import(\"./../../../src/pages/login.tsx\" /* webpackChunkName: \"component---src-pages-login-tsx\" */),\n \"component---src-pages-logout-tsx\": () => import(\"./../../../src/pages/logout.tsx\" /* webpackChunkName: \"component---src-pages-logout-tsx\" */),\n \"component---src-pages-maintenance-tsx\": () => import(\"./../../../src/pages/maintenance.tsx\" /* webpackChunkName: \"component---src-pages-maintenance-tsx\" */),\n \"component---src-pages-reducertest-tsx\": () => import(\"./../../../src/pages/reducertest.tsx\" /* webpackChunkName: \"component---src-pages-reducertest-tsx\" */),\n \"component---src-pages-register-tsx\": () => import(\"./../../../src/pages/register.tsx\" /* webpackChunkName: \"component---src-pages-register-tsx\" */),\n \"component---src-pages-reset-password-tsx\": () => import(\"./../../../src/pages/reset_password.tsx\" /* webpackChunkName: \"component---src-pages-reset-password-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"FOLX Health\",\"short_name\":\"Folx\",\"start_url\":\"/\",\"display\":\"standalone\",\"icon\":\"/codebuild/output/src1453335374/src/member-frontend/src/assets/images/ampersex.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"fc38cca04c4b04ea9469de1f3b9d8f18\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-styled-components/gatsby-browser.js'),\n options: {\"plugins\":[],\"displayName\":true,\"fileName\":true,\"minify\":true,\"namespace\":\"\",\"transpileTemplateLiterals\":true,\"topLevelImportPaths\":[],\"pure\":false,\"disableVendorPrefixes\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-mixpanel/gatsby-browser.js'),\n options: {\"plugins\":[],\"apiToken\":\"f5f7923399fddd8eae06a6b44ad6a881\",\"mixpanelConfig\":{\"api_host\":\"https://mpp.folxhealth.com\"}},\n },{\n plugin: require('../node_modules/gatsby-plugin-canonical-urls/gatsby-browser.js'),\n options: {\"plugins\":[],\"siteUrl\":\"https://www.folxhealth.com/\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-datadog-rum/gatsby-browser.js'),\n options: {\"plugins\":[],\"enabled\":true,\"applicationId\":\"d3308c14-bb10-4578-8802-664b34181355\",\"clientToken\":\"pub132b8f9026fe56e41403c604f425fa3a\",\"site\":\"datadoghq.com\",\"service\":\"member-webapp\",\"version\":\"amplify-b0000001787-rHEAD\",\"env\":\"prod\",\"allowedTracingUrls\":[\"https://api.folxhealth.com\"],\"sessionSampleRate\":100,\"sessionReplaySampleRate\":100,\"trackUserInteractions\":true,\"trackSessionAcrossSubdomains\":true,\"trackResources\":true,\"trackLongTasks\":true,\"defaultPrivacyLevel\":\"mask-user-input\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import { gql, useQuery } from '@apollo/client';\nimport React, { FC, useContext, useState } from 'react';\n\nimport { useAuth } from '@providers/AuthProvider';\n\nexport const isBrowser = typeof window !== `undefined`;\n\ninterface IEntitlementsContext {\n\tcommunitySpaces: boolean;\n}\n\nconst COMMUNITY_LOGIN_RIGHTS_QUERY = gql`\n\tquery memberHasCommunityLoginRights {\n\t\tmemberHasCommunityLoginRights\n\t}\n`;\n\ninterface IMemberHasCommunityLoginRights {\n\tmemberHasCommunityLoginRights: boolean;\n}\n\nconst EntitlementsContext = React.createContext({\n\tcommunitySpaces: false,\n});\n\nexport const EntitlementsProvider: FC = ({ children }) => {\n\tconst [entitlements, setEntitlements] = useState({\n\t\tcommunitySpaces: false,\n\t});\n\n\tconst { userId } = useAuth();\n\n\tuseQuery(COMMUNITY_LOGIN_RIGHTS_QUERY, {\n\t\tskip: !userId,\n\n\t\tonCompleted: (memberHasCommunityLoginRights: IMemberHasCommunityLoginRights) => {\n\t\t\tsetEntitlements({\n\t\t\t\tcommunitySpaces: memberHasCommunityLoginRights.memberHasCommunityLoginRights,\n\t\t\t});\n\t\t},\n\t});\n\n\treturn (\n\t\t{children}\n\t);\n};\n\nexport const useEntitlements = () => {\n\tconst { communitySpaces } = useContext(EntitlementsContext);\n\treturn {\n\t\tcommunitySpaces,\n\t};\n};\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","import { createStore as reduxCreateStore } from 'redux';\n\nconst reducer = (state, action) => {\n\tswitch (action.type) {\n\t\tcase 'add':\n\t\t\treturn { count: ++state.count };\n\t\tcase 'subtract':\n\t\t\treturn { count: --state.count };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nconst initialState = { count: 0 };\n\nconst createStore = () => reduxCreateStore(reducer, initialState);\nexport default createStore;\n","import './src/fonts.css';\nimport wrapWithLayout from './wrap-with-layout.tsx';\nimport wrapWithProvider from './wrap-with-provider.tsx';\n\nexport const wrapPageElement = wrapWithLayout;\nexport const wrapRootElement = wrapWithProvider;\n","import { Auth, Hub, Storage } from 'aws-amplify';\nimport React from 'react';\nimport Helmet from 'react-helmet';\n\nimport Layout from './src/components/Layout';\nimport { isBrowser } from './src/utils/isBrowser';\n\nexport default ({ element, props: { location }, ...props }) => {\n\tif (isBrowser) {\n\t\tAuth?.configure({\n\t\t\tAuth: {\n\t\t\t\tmandatorySignIn: true,\n\t\t\t\tregion: process.env.GATSBY_COGNITO_REGION,\n\t\t\t\tuserPoolId: process.env.GATSBY_COGNITO_USER_POOL_ID,\n\t\t\t\tuserPoolWebClientId: process.env.GATSBY_COGNITO_APP_CLIENT_ID,\n\t\t\t\tidentityPoolId: process.env.GATSBY_COGNITO_IDENTITY_POOL_ID,\n\t\t\t\tcookieStorage: {\n\t\t\t\t\tdomain: process.env.GATSBY_COOKIE_DOMAIN ?? 'localhost',\n\t\t\t\t},\n\t\t\t\tauthenticationFlowType: 'CUSTOM_AUTH',\n\t\t\t},\n\t\t\tStorage: {\n\t\t\t\tAWSS3: {\n\t\t\t\t\tbucket: process.env.GATSBY_S3_BUCKET,\n\t\t\t\t\tregion: process.env.GATSBY_S3_REGION,\n\t\t\t\t\tlevel: 'private',\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst updateIdentity = (identity: string) => {\n\t\t\tStorage?.configure({\n\t\t\t\tAWSS3: {\n\t\t\t\t\tidentityId: identity,\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\tHub.listen('auth', (data) => {\n\t\t\tswitch (data.payload.event) {\n\t\t\t\tcase 'signIn':\n\t\t\t\tcase 'configured':\n\t\t\t\t\tAuth.currentSession()\n\t\t\t\t\t\t.then((cognitoSession) => {\n\t\t\t\t\t\t\tupdateIdentity(cognitoSession.getIdToken().payload['cognito:username']);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((e) => updateIdentity(''));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signOut':\n\t\t\t\t\tupdateIdentity('');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn (\n\t\t\n\t\t\t{element}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from 'styled-components';\n\nimport ApolloProvider from './src/providers/ApolloProvider';\nimport { AuthProvider } from './src/providers/AuthProvider';\nimport { EntitlementsProvider } from './src/providers/EntitlementsProvider';\nimport GraphQLv2Context, { graphQLv2ApolloClient } from './src/providers/GraphQLv2ContextProvider';\nimport createStore from './src/state/createStore';\nimport { getThemeForFlow } from './src/theme/FlowThemes';\n\nexport default ({ element }) => {\n\tconst store = createStore();\n\tconst graphqlV2Client = { client: graphQLv2ApolloClient() };\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{element}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","export const onRouteUpdate = ({\n location\n}, pluginOptions = {\n stripQueryString: false\n}) => {\n const domElem = document.querySelector(`link[rel='canonical']`);\n const existingValue = domElem.getAttribute(`href`);\n const baseProtocol = domElem.getAttribute(`data-baseProtocol`);\n const baseHost = domElem.getAttribute(`data-baseHost`);\n if (existingValue && baseProtocol && baseHost) {\n let value = `${baseProtocol}//${baseHost}${location.pathname}`;\n const {\n stripQueryString\n } = pluginOptions;\n if (!stripQueryString) {\n value += location.search;\n }\n value += location.hash;\n domElem.setAttribute(`href`, `${value}`);\n }\n};","exports.onClientEntry = function(_, pluginParams) {\n if (pluginParams.enabled !== false) {\n require.ensure(['@datadog/browser-rum'], function(require) {\n const Datadog = require('@datadog/browser-rum');\n Datadog.datadogRum.init(pluginParams);\n window.datadogRum = Datadog.datadogRum;\n });\n }\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _ = require(\".\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar api_host = process.env.MIXPANEL_API_BASE || 'https://api.mixpanel.com';\n\nfunction isEnable(options) {\n return (process.env.NODE_ENV === \"production\" || options.enableOnDevMode) && options.apiToken;\n}\n\nfunction trackEvent(eventName, properties) {\n if (eventName) _.mixpanel.track(eventName, properties);\n}\n\nfunction trackPageViews(location, pageViews, trackPageViewsAs, getPageViewTransformerFn) {\n if (pageViews && location) {\n var eventName;\n\n if (pageViews instanceof Object) {\n eventName = pageViews[location.pathname];\n } else if (trackPageViewsAs) {\n eventName = trackPageViewsAs;\n } else if (pageViews === 'all') {\n eventName = \"View page \".concat(location.pathname);\n }\n\n var pageViewEventTransformerFn = new Function('location', getPageViewTransformerFn);\n var event = pageViewEventTransformerFn()(location);\n trackEvent(eventName, event);\n }\n}\n\nfunction getOptions(pluginOptions) {\n var defaultsOptions = {\n apiToken: null,\n enableOnDevMode: true,\n mixpanelConfig: null,\n trackPageViewsAs: null,\n getPageViewTransformerFn: 'return function(location) { return location; }'\n };\n\n var options = _objectSpread(_objectSpread({}, defaultsOptions), pluginOptions);\n\n return _objectSpread(_objectSpread({}, options), {}, {\n isEnable: isEnable(options)\n });\n}\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var options = getOptions(pluginOptions);\n\n if (!isEnable(options)) {\n return;\n }\n\n trackPageViews(location, options.pageViews, options.trackPageViewsAs, options.getPageViewTransformerFn);\n};\n\nexports.onClientEntry = function (skip, pluginOptions) {\n var options = getOptions(pluginOptions);\n\n if (!options.isEnable) {\n _.mixpanel.init('disable', {\n autotrack: false,\n api_host: api_host\n });\n\n _.mixpanel.disable();\n\n return;\n }\n\n var customOptions = _extends({\n track_pageview: false,\n api_host: api_host\n }, options.mixpanelConfig);\n\n _.mixpanel.init(options.apiToken, customOptions);\n};\n\nexports.wrapRootElement = function (_ref2) {\n var element = _ref2.element;\n return /*#__PURE__*/_react[\"default\"].createElement(_.MixpanelProvider, null, element);\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MixpanelProvider = exports.MixpanelConsumer = void 0;\nObject.defineProperty(exports, \"mixpanel\", {\n enumerable: true,\n get: function get() {\n return _mixpanelBrowser[\"default\"];\n }\n});\nexports.withMixpanel = exports.useMixpanel = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _mixpanelBrowser = _interopRequireDefault(require(\"mixpanel-browser\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar MixpanelContext = /*#__PURE__*/(0, _react.createContext)(_mixpanelBrowser[\"default\"]);\n\nvar MixpanelProvider = function MixpanelProvider(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(MixpanelContext.Provider, {\n value: _mixpanelBrowser[\"default\"]\n }, children);\n};\n\nexports.MixpanelProvider = MixpanelProvider;\n\nvar MixpanelConsumer = function MixpanelConsumer(_ref2) {\n var children = _ref2.children;\n return /*#__PURE__*/_react[\"default\"].createElement(MixpanelContext.Consumer, null, function (mixpanel) {\n return /*#__PURE__*/(0, _react.cloneElement)(children, {\n mixpanel: mixpanel\n });\n });\n};\n\nexports.MixpanelConsumer = MixpanelConsumer;\n\nvar withMixpanel = function withMixpanel() {\n return function (WrappedComponent) {\n var WithMixpanel = /*#__PURE__*/function (_PureComponent) {\n _inherits(WithMixpanel, _PureComponent);\n\n var _super = _createSuper(WithMixpanel);\n\n function WithMixpanel() {\n _classCallCheck(this, WithMixpanel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(WithMixpanel, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/_react[\"default\"].createElement(MixpanelConsumer, null, /*#__PURE__*/_react[\"default\"].createElement(WrappedComponent, _extends({\n ref: this.props.forwardedRef\n }, this.props)));\n }\n }]);\n\n return WithMixpanel;\n }(_react.PureComponent);\n\n return /*#__PURE__*/_react[\"default\"].forwardRef(function (props, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(WithMixpanel, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n };\n};\n\nexports.withMixpanel = withMixpanel;\n\nvar useMixpanel = function useMixpanel() {\n return (0, _react.useContext)(MixpanelContext);\n};\n\nexports.useMixpanel = useMixpanel;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _styledComponents = require(\"styled-components\");\n// eslint-disable-next-line react/prop-types,react/display-name\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","export default __webpack_public_path__ + \"static/Chalet-LondonSixty-a06e7b434b5ff22c56b750f0614c3a74.woff\";","export default __webpack_public_path__ + \"static/Chalet-LondonSixty-d1c0b23df4ac37779365341d67f69e2a.woff2\";","export default __webpack_public_path__ + \"static/Chalet-NewYorkSixty-ce86578f0678b654dcd04a7ca8161120.woff\";","export default __webpack_public_path__ + \"static/Chalet-NewYorkSixty-6ce7b90487bc77b09f20b9c747c31a1a.woff2\";","export default __webpack_public_path__ + \"static/Hatton-Light-d47d6d5feb8604b24e6b562d1a7b5ed0.woff\";","export default __webpack_public_path__ + \"static/Hatton-Light-a83de3fc3ab6d2470bea3b56cb650a71.woff2\";","export default __webpack_public_path__ + \"static/Hatton-Regular-76daa0c4c3c07e86a1e3304b82f4166b.woff\";","export default __webpack_public_path__ + \"static/Hatton-Regular-92561324d74f42e3249400ad9e3c9616.woff2\";","export default __webpack_public_path__ + \"static/montserrat-semibold-webfont-afd197c4f5de60a2be4d8cfa6b6d295c.woff\";","export default __webpack_public_path__ + \"static/montserrat-semibold-webfont-533e0f5035ec0e121a5285a949669b76.woff2\";","import { createGlobalStyle } from 'styled-components';\n\nimport ChaletLondonSixtyWoff from '@assets/fonts/Chalet-LondonSixty.woff';\nimport ChaletLondonSixtyWoff2 from '@assets/fonts/Chalet-LondonSixty.woff2';\nimport ChaletNewYorkSixtyWoff from '@assets/fonts/Chalet-NewYorkSixty.woff';\nimport ChaletNewYorkSixtyWoff2 from '@assets/fonts/Chalet-NewYorkSixty.woff2';\nimport HattonLightWoff from '@assets/fonts/Hatton-Light.woff';\nimport HattonLightWoff2 from '@assets/fonts/Hatton-Light.woff2';\nimport HattonRegularWoff from '@assets/fonts/Hatton-Regular.woff';\nimport HattonRegularWoff2 from '@assets/fonts/Hatton-Regular.woff2';\nimport MontserratSemibold from '@assets/fonts/montserrat-semibold-webfont.woff';\nimport MontserratSemibold2 from '@assets/fonts/montserrat-semibold-webfont.woff2';\n\nimport theme from '@theme/WsTheme';\n\nexport const FontStyles = createGlobalStyle`\n\n@font-face {\n\tfont-family: 'Chalet';\n\tsrc: url('${ChaletLondonSixtyWoff2}') format('woff2'),\n\t\turl('${ChaletLondonSixtyWoff}') format('woff');\n\tfont-weight: normal;\n\tfont-display: swap;\n}\n\n@font-face {\n\tfont-family: 'Chalet';\n\tsrc: url('${ChaletNewYorkSixtyWoff2}') format('woff2'),\n\t\turl('${ChaletNewYorkSixtyWoff}') format('woff');\n\tfont-weight: bold;\n\tfont-display: swap;\n}\n\n@font-face {\n\tfont-family: 'Chalet-LondonSixty';\n\tsrc: url('${ChaletLondonSixtyWoff2}') format('woff2'),\n\t\turl('${ChaletLondonSixtyWoff}') format('woff');\n\tfont-style: normal;\n\tfont-weight: 400;\n\tfont-stretch: normal;\n\tfont-display: swap;\n}\n\n@font-face {\n\tfont-family: 'Chalet-NewYorkSixty';\n\tsrc: url('${ChaletNewYorkSixtyWoff2}') format('woff2'),\n\t\turl('${ChaletNewYorkSixtyWoff}') format('woff');\n\tfont-style: normal;\n\tfont-weight: 400;\n\tfont-stretch: normal;\n\tfont-display: swap;\n\n}\n\n@font-face {\n\tfont-family: 'Hatton';\n\tsrc: url('${HattonRegularWoff2}') format('woff2'),\n\t\turl('${HattonRegularWoff}') format('woff');\n\tfont-style: normal;\n\tfont-weight: 400;\n\tfont-stretch: normal;\n\tfont-display: swap;\n\n}\n\n@font-face {\n\tfont-family: 'Hatton';\n\tsrc: url('${HattonLightWoff2}') format('woff2'),\n\t\turl('${HattonLightWoff}') format('woff');\n\tfont-style: normal;\n\tfont-weight: 200;\n\tfont-stretch: normal;\n\tfont-display: swap;\n\n}\n\n@font-face {\n\tfont-family: 'Montserrat';\n\tsrc: url('${MontserratSemibold2}') format('woff2'),\n\t\turl('${MontserratSemibold}') format('woff');\n\tfont-style: normal;\n\tfont-weight: 200;\n\tfont-stretch: normal;\n\tfont-display: swap;\n}\n`;\n\nexport const ResetStyles = createGlobalStyle`\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tfont-size: 100%;\n\tfont: inherit;\n\tvertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n\tdisplay: block;\n}\nbody {\n\tline-height: 1;\n\tbackground-color: ${theme.colors.lightBeige};\n}\nol,\nul {\n\tlist-style: none;\n}\nblockquote,\nq {\n\tquotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n\tcontent: '';\n\tcontent: none;\n}\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\nstrong {\n\tfont-family: Chalet-NewYorkSixty, sans-serif;\n}\nbutton {\n\tappearance: none;\n\tborder: none;\n\tpadding: 0;\n\tbackground: none;\n}\n`;\n\nexport const GlobalStyles = createGlobalStyle`\nhtml {\n\tfont-size: 62.5%;\n}\n\nhtml,\nbody {\n\tfont-family: Chalet-LondonSixty, sans-serif;\n\tcolor: ${theme.colors.black};\n}\n\nbody {\n\tbackground: ${theme.colors.lightBeige};\n\t-webkit-font-smoothing: antialiased;\n\t&.dark {\n\t\tbackground: ${theme.colors.black};\n\t}\n}\n\nh1 {\n\tfont-size: ${theme.fontSizes.header.xl};\n\tline-height: ${theme.lineHeights.header.xl};\n}\n\nh2 {\n\tfont-size: ${theme.fontSizes.header.lg};\n\tline-height: ${theme.lineHeights.header.lg};\n}\n\nh3 {\n\tfont-family: Hatton, serif;\n\tfont-size: ${theme.fontSizes.header.lg};\n\tline-height: ${theme.lineHeights.header.lgh};\n}\n\nh4 {\n\tfont-size: ${theme.fontSizes.header.md};\n\tline-height: ${theme.lineHeights.header.md};\n}\n\nh5 {\n\tfont-family: Chalet-NewYorkSixty, sans-serif;\n\tfont-size: ${theme.fontSizes.header.sm};\n\tline-height: ${theme.lineHeights.header.sm};\n}\n\nh6 {\n\tfont-family: Hatton, serif;\n\tfont-size: ${theme.fontSizes.header.xs};\n\tline-height: ${theme.lineHeights.header.xs};\n}\n\n// @a11y\n.skip-to-content-link {\n background: ${theme.colors.white};\n padding: 1rem 1.5rem;\n top: 0;\n\tleft: 0;\n position: absolute;\n transform: translateY(-100%);\n transition: transform 0.3s;\n\tcolor: ${theme.colors.black};\n\tfont-size: ${theme.fontSizes.body.sm};\n\tborder: 2px solid ${theme.colors.beige};\n\tz-index: ${theme.zIndexes.dialog};\n\ttext-decoration: none;\n\t&:focus {\n\t\ttransform: translateY(0%);\n\t}\n}\n\n// @fix for routes under reach-router\ndiv[tabindex = '-1'] {\n\tflex: 1;\n\twidth: inherit;\n\tdisplay: contents;\n\t// Other rules that don't break a11y 😊\n}\n\n// @global overlay modals\ndiv[data-reach-dialog-overlay] {\n\tdisplay: block;\n\tz-index: ${theme.zIndexes.dialog};\n\tbackground: rgba(248, 247, 245, 0.7);\n}\n\n// @fix for library menu\ndiv[data-reach-menu-popover] {\n\tdisplay: block;\n\tz-index: ${theme.zIndexes.dialog};\n}\n\ndiv[data-reach-listbox-popover] {\n\tdisplay: block;\n\tmax-height: 32rem;\n\toverflow: auto;\n\tz-index: ${theme.zIndexes.dialog};\n}\n`;\n","import React, { FC, useEffect } from 'react';\n\nimport { useTracking } from '@hooks/useTracking';\n\nimport { LocationData } from '@folx-types/routing';\n\nimport { GlobalStyles, ResetStyles } from '../GlobalStyles';\n\ninterface LayoutProps {\n\tchildren: React.ReactNode;\n\tlocation: LocationData;\n}\n\nconst Layout: FC = ({ children, location }) => {\n\tconst { trackEvent } = useTracking();\n\n\tuseEffect(() => {\n\t\tif (location?.pathname) {\n\t\t\ttrackEvent('view-page', { url: location?.pathname });\n\t\t}\n\t}, [location]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t{location?.pathname !== '/graphiql_v2/' && }\n\t\t\t<>{children}\n\t\t\n\t);\n};\n\nexport default Layout;\n","import Layout from './Layout';\n\nexport default Layout;\n","import { useMixpanel } from 'gatsby-plugin-mixpanel';\nimport { useEffect, useState } from 'react';\n\nimport { isBrowser } from '@utils/isBrowser';\n\ninterface HookReturnType {\n\ttrackEvent: (label: string, metadata?: Object | undefined) => void;\n}\n\nexport const useTracking = (\n\tlabel?: string | undefined,\n\tmetadata?: Object | undefined\n): HookReturnType => {\n\tconst mixpanel = useMixpanel();\n\tconst trackEvent = (label: string, metadata: Record | undefined) => {\n\t\tmixpanel.track(label, metadata);\n\t};\n\n\tconst [trackingDone, setTrackingDone] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) {\n\t\t\treturn;\n\t\t}\n\t\tif (label) {\n\t\t\tif (!trackingDone) {\n\t\t\t\tsetTrackingDone(true);\n\t\t\t\ttrackEvent(label, metadata);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn {\n\t\ttrackEvent,\n\t};\n};\n","import { __assign } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from \"react\";\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n var parentContext = React.useContext(ApolloContext);\n var context = React.useMemo(function () {\n return __assign(__assign({}, parentContext), { client: client || parentContext.client });\n }, [parentContext, client]);\n invariant(context.client, 44);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n};\n//# sourceMappingURL=ApolloProvider.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../../utilities/index.js';\nimport { ApolloLink } from '../core/index.js';\nexport function onError(errorHandler) {\n return new ApolloLink(function (operation, forward) {\n return new Observable(function (observer) {\n var sub;\n var retriedSub;\n var retriedResult;\n try {\n sub = forward(operation).subscribe({\n next: function (result) {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation: operation,\n forward: forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n }\n observer.next(result);\n },\n error: function (networkError) {\n retriedResult = errorHandler({\n operation: operation,\n networkError: networkError,\n graphQLErrors: networkError &&\n networkError.result &&\n networkError.result.errors,\n forward: forward,\n });\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return;\n }\n observer.error(networkError);\n },\n complete: function () {\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n },\n });\n }\n catch (e) {\n errorHandler({ networkError: e, operation: operation, forward: forward });\n observer.error(e);\n }\n return function () {\n if (sub)\n sub.unsubscribe();\n if (retriedSub)\n sub.unsubscribe();\n };\n });\n });\n}\nvar ErrorLink = (function (_super) {\n __extends(ErrorLink, _super);\n function ErrorLink(errorHandler) {\n var _this = _super.call(this) || this;\n _this.link = onError(errorHandler);\n return _this;\n }\n ErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return ErrorLink;\n}(ApolloLink));\nexport { ErrorLink };\n//# sourceMappingURL=index.js.map","import { ApolloClient, ApolloLink, ApolloProvider, HttpLink, InMemoryCache } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { onError } from '@apollo/client/link/error';\nimport { datadogRum } from '@datadog/browser-rum';\nimport React, { ReactNode } from 'react';\n\nimport { ApiEndpoints } from '@utils/endpoints';\nimport { errorTypes } from '@utils/error';\nimport { isBrowser } from '@utils/isBrowser';\n\nimport { getAuthToken } from '@providers/AuthProvider';\n\nexport const errorLink = onError(({ networkError = {} as any, graphQLErrors }) => {\n\tif (graphQLErrors) {\n\t\tgraphQLErrors.map((error) => {\n\t\t\tconsole.log(\n\t\t\t\t`[GraphQL error]: Message: ${error.message}, Location: ${error.locations}, Path: ${error.path}`\n\t\t\t);\n\t\t\tdatadogRum.addError(error, {\n\t\t\t\terrorType: errorTypes.apolloGraphql,\n\t\t\t\tlocations: error.locations,\n\t\t\t\tpath: error.path,\n\t\t\t});\n\t\t});\n\t}\n\tif (networkError) {\n\t\tconsole.log(`[Network err]: Message: ${networkError}`);\n\t\tswitch (networkError.statusCode) {\n\t\t\tcase 400:\n\t\t\tcase 500:\n\t\t\t\tdatadogRum.addError(networkError, { errorTypes: errorTypes.apolloNetwork });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t}\n\t}\n});\n\nexport const authLink = setContext(async (_, { headers }) => {\n\tconst authorizationToken = await getAuthToken();\n\treturn {\n\t\theaders: {\n\t\t\t...headers,\n\t\t\tauthorizationToken,\n\t\t},\n\t};\n});\n\nexport const apolloClient = () => {\n\tconst httpLink = new HttpLink({\n\t\turi: (operation) =>\n\t\t\t`${ApiEndpoints.folxGraphql}?operation=${encodeURIComponent(operation.operationName)}`,\n\t\t...(!isBrowser && {\n\t\t\tfetch: () => {\n\t\t\t\tthrow new Error(\"Can't make a dynamic query outside of a browser.\");\n\t\t\t},\n\t\t}),\n\t});\n\n\tconst link = ApolloLink.from([errorLink, authLink.concat(httpLink)]);\n\n\tconst client = new ApolloClient({\n\t\tcache: new InMemoryCache(),\n\t\tlink,\n\t});\n\n\treturn client;\n};\n\nconst FolxApolloProvider = ({ children }: { children: ReactNode }) => {\n\tconst client = apolloClient();\n\treturn {children};\n};\n\nexport default FolxApolloProvider;\n","import { __rest } from \"tslib\";\nimport { ApolloLink } from '../core/index.js';\nimport { Observable } from '../../utilities/index.js';\nexport function setContext(setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n return new Observable(function (observer) {\n var handle;\n var closed = false;\n Promise.resolve(request)\n .then(function (req) { return setter(req, operation.getContext()); })\n .then(operation.setContext)\n .then(function () {\n if (closed)\n return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n return function () {\n closed = true;\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { HubCallback } from '@aws-amplify/core';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { CognitoUser } from 'amazon-cognito-identity-js';\nimport assert from 'assert';\nimport type { Auth as AuthClass, Hub as HubClass } from 'aws-amplify';\nimport axios from 'axios';\nimport mixpanel from 'mixpanel-browser';\nimport React, { FC, useContext, useEffect, useReducer } from 'react';\n\nimport { ApiEndpoints } from '@utils/endpoints';\n\nexport const isBrowser = typeof window !== `undefined`;\n\nconst { Auth, Hub }: { Auth: typeof AuthClass; Hub: typeof HubClass } = isBrowser\n\t? require('aws-amplify')\n\t: { Auth: {}, Hub: {} };\n\ninterface User extends CognitoUser {\n\tchallengeParam?: {\n\t\tmfaEnrollmentSession: string;\n\t};\n}\n\ninterface IAuthContext {\n\tuser?: User;\n\tupdateUser: (user?: User) => void;\n\tinitialized: boolean;\n}\n\nconst AuthContext = React.createContext({\n\tupdateUser: (user) => {},\n\tinitialized: false,\n});\n\nexport const AuthProvider: FC<{ children: React.ReactNode }> = ({ children }) => {\n\tconst [{ user, initialized }, updateUser] = useReducer(\n\t\t({ user }: { user: User | undefined; initialized: boolean }, newUser: User | undefined) => {\n\t\t\tif (newUser && !newUser?.getSignInUserSession()?.getIdToken().payload.email_verified) {\n\t\t\t\tAuth.signOut();\n\t\t\t\treturn { user: undefined, initialized: true };\n\t\t\t} else if (newUser?.getUsername() != user?.getUsername()) {\n\t\t\t\treturn { user: newUser, initialized: true };\n\t\t\t}\n\t\t\treturn { user, initialized: true };\n\t\t},\n\t\t{ user: undefined, initialized: false }\n\t);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\t\tAuth.currentAuthenticatedUser()\n\t\t\t.then(updateUser)\n\t\t\t.catch(() => updateUser(undefined));\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (user) {\n\t\t\tconst userId = user.getUsername();\n\t\t\tconst email = user.getSignInUserSession()?.getIdToken().payload.email ?? '';\n\t\t\tmixpanel.identify(userId);\n\t\t\tmixpanel.people.set({\n\t\t\t\tUSER_ID: userId,\n\t\t\t\tIS_FOLX_USER: email.endsWith('@folxhealth.com'),\n\t\t\t});\n\t\t\tdatadogRum.setUser({ id: userId });\n\t\t} else {\n\t\t\tmixpanel.reset();\n\t\t\tdatadogRum.removeUser();\n\t\t}\n\t}, [user]);\n\n\t// Try to catch any auth events that don't go through this provider.\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\t\tconst listener: HubCallback = (event) => {\n\t\t\tswitch (event.payload.event) {\n\t\t\t\tcase 'signIn':\n\t\t\t\tcase 'configured':\n\t\t\t\t\tAuth.currentAuthenticatedUser()\n\t\t\t\t\t\t.then(updateUser)\n\t\t\t\t\t\t.catch(() => updateUser(undefined));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signOut':\n\t\t\t\tcase 'signIn_failure':\n\t\t\t\tcase 'tokenRefresh_failure':\n\t\t\t\t\tupdateUser(undefined);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\t\tHub.listen('auth', listener);\n\n\t\tconst cleanup = () => {\n\t\t\tHub.remove('auth', listener);\n\t\t};\n\t\treturn cleanup;\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport type SignInErrorTypes =\n\t| 'NOT_AUTHORIZED'\n\t| 'PASSWORD_RESET_REQUIRED'\n\t| 'ALREADY_LOGGED_IN'\n\t| 'SERVICE_ERROR';\n\n// The error cases from Amplify on sign-in aren't well-documented or easy to use\n// so let's wrap them with something easier\nexport class SignInError extends Error {\n\ttype: SignInErrorTypes;\n\n\tconstructor(type: SignInErrorTypes, message?: string) {\n\t\tsuper(message ?? `Sign in error: ${type}`);\n\t\tthis.type = type;\n\t}\n}\n\nexport type SignUpErrorTypes =\n\t| 'INVALID_PASSWORD'\n\t| 'USER_EXISTS'\n\t| 'ALREADY_LOGGED_IN'\n\t| 'SERVICE_ERROR';\n\nexport class SignUpError extends Error {\n\ttype: SignUpErrorTypes;\n\n\tconstructor(type: SignUpErrorTypes, message?: string) {\n\t\tsuper(message ?? `Sign up error: ${type}`);\n\t\tthis.type = type;\n\t}\n}\n\nexport type VerifySignUpErrorTypes =\n\t| 'WRONG_CODE'\n\t| 'EXPIRED_CODE'\n\t| 'ALREADY_LOGGED_IN'\n\t| 'SERVICE_ERROR';\n\nexport class VerifySignUpError extends Error {\n\ttype: VerifySignUpErrorTypes;\n\n\tconstructor(type: VerifySignUpErrorTypes, message?: string) {\n\t\tsuper(message ?? `Verify sign up error: ${type}`);\n\t\tthis.type = type;\n\t}\n}\n\nexport type ResetPasswordErrorTypes =\n\t| 'WRONG_CODE'\n\t| 'EXPIRED_CODE'\n\t| 'INVALID_PASSWORD'\n\t| 'ALREADY_LOGGED_IN'\n\t| 'SERVICE_ERROR';\n\nexport class ResetPasswordError extends Error {\n\ttype: ResetPasswordErrorTypes;\n\n\tconstructor(type: ResetPasswordErrorTypes, message?: string) {\n\t\tsuper(message ?? `Reset password error: ${type}`);\n\t\tthis.type = type;\n\t}\n}\n\nexport type ConfirmPasswordErrorTypes =\n\t| 'INVALID_PASSWORD'\n\t| 'NOT_AUTHORIZED'\n\t| 'PASSWORD_RESET_REQUIRED'\n\t| 'USER_ERROR'\n\t| 'SERVICE_ERROR';\n\nexport class ConfirmPasswordError extends Error {\n\ttype: ConfirmPasswordErrorTypes;\n\n\tconstructor(type: ConfirmPasswordErrorTypes, message?: string) {\n\t\tsuper(message ?? `Change password error: ${type}`);\n\t\tthis.type = type;\n\t}\n}\n\n// Dependency loop break; ApolloProvider needs getAuthToken from AuthProvider,\n// but AuthProvider needs ApolloProvider set up.\n// So, we provide a version of this function which works for ApolloProvider.\nexport const getAuthToken = async () => {\n\tif (!isBrowser) return '';\n\ttry {\n\t\tconst session = await Auth.currentSession();\n\t\tconst idToken = await session.getIdToken();\n\t\treturn idToken.getJwtToken();\n\t} catch (e) {\n\t\tconsole.log(`Error getting auth token: ${e.message}`);\n\t\treturn '';\n\t}\n};\n\nexport enum AuthStep {\n\tneedPassword = 'needPassword', // The user needs to provide a password (and we need to validate it)\n\tneedMultifactorPreference = 'needMultifactorPreference', // The user needs to choose which type of MFA they want to use (if more than one is enabled)\n\tneedTOTPMultifactorVerification = 'needTOTPMultifactorVerification', // The user needs to provide a TOTP multifactor (and we need to verify it)\n\tneedSMSMultifactorVerification = 'needSMSMultifactorVerification', // The needs to to provide a SMS multifactor (and we need to verify it)\n\tneedTOTPMultifactorSetup = 'needTOTPMultifactorSetup', // The user needs to set up TOTP multifactor\n\tneedSMSMultifactorSetupPhone = 'needSMSMultifactorSetupPhone', // The user needs to set up SMS multifactor\n\tneedSMSMultifactorSetupVerification = 'needSMSMultifactorSetupVerification', // The needs to to provide a SMS multifactor to complete SMS multifactor setup\n\tdone = 'done',\n}\n\nexport type AuthStepContext =\n\t| { nextStep: 'needPassword' }\n\t| { nextStep: 'needMultifactorPreference' }\n\t| { nextStep: 'needTOTPMultifactorSetup'; user: CognitoUser; secretCode: string }\n\t| { nextStep: 'needTOTPMultifactorVerification'; user: CognitoUser }\n\t| { nextStep: 'needSMSMultifactorSetupPhone'; user: CognitoUser }\n\t| {\n\t\t\tnextStep: 'needSMSMultifactorSetupVerification';\n\t\t\tuser: CognitoUser;\n\t\t\tphoneNumber: string;\n\t }\n\t| {\n\t\t\tnextStep: 'needSMSMultifactorVerification';\n\t\t\tuser: CognitoUser;\n\t\t\tphoneNumber: string;\n\t }\n\t| { nextStep: 'done' };\n\nexport const useAuth = () => {\n\tconst { user, updateUser, initialized } = useContext(AuthContext);\n\n\tconst signIn = async (email: string, password: string, isRetry = false) => {\n\t\tif (!isBrowser) {\n\t\t\treturn { nextStep: AuthStep.done };\n\t\t}\n\t\tif (user) {\n\t\t\tthrow new SignInError('ALREADY_LOGGED_IN', \"Can't sign in when already signed in.\");\n\t\t}\n\n\t\ttry {\n\t\t\tconst authResponse = await Auth.signIn(email, password);\n\t\t\tconsole.log('authResponse:', authResponse);\n\n\t\t\tif (authResponse.challengeName == 'SMS_MFA') {\n\t\t\t\treturn {\n\t\t\t\t\tnextStep: AuthStep.needSMSMultifactorVerification,\n\t\t\t\t\tuser: authResponse as CognitoUser,\n\t\t\t\t\tphoneNumber: authResponse?.challengeParam?.CODE_DELIVERY_DESTINATION as string,\n\t\t\t\t};\n\t\t\t} else if (authResponse.challengeName == 'SOFTWARE_TOKEN_MFA') {\n\t\t\t\treturn {\n\t\t\t\t\tnextStep: AuthStep.needTOTPMultifactorVerification,\n\t\t\t\t\tuser: authResponse as CognitoUser,\n\t\t\t\t};\n\t\t\t} else if (authResponse.challengeName == 'CUSTOM_CHALLENGE') {\n\t\t\t\tconsole.log('Custom challenge', authResponse);\n\t\t\t\tif (authResponse?.challengeParam?.secretCode) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tnextStep: AuthStep.needTOTPMultifactorSetup,\n\t\t\t\t\t\tsecretCode: authResponse?.challengeParam?.secretCode,\n\t\t\t\t\t\tuser: authResponse,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tnextStep: AuthStep.needSMSMultifactorSetupPhone,\n\t\t\t\t\t\tuser: authResponse,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif ('code' in e) {\n\t\t\t\tswitch (e.code) {\n\t\t\t\t\tcase 'NotAuthorizedException':\n\t\t\t\t\t\tthrow new SignInError('NOT_AUTHORIZED', e.message);\n\t\t\t\t\tcase 'PasswordResetRequiredException':\n\t\t\t\t\t\tthrow new SignInError('PASSWORD_RESET_REQUIRED', e.message);\n\t\t\t\t\tcase 'UnexpectedLambdaException':\n\t\t\t\t\t\tif (isRetry) {\n\t\t\t\t\t\t\tthrow new SignInError('SERVICE_ERROR', e.message);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn signIn(email, password, true);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new SignInError('SERVICE_ERROR', e.message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\n\t\tconst currentUser = await Auth.currentAuthenticatedUser();\n\t\tupdateUser(currentUser);\n\t\treturn { nextStep: AuthStep.done };\n\t};\n\n\tconst setUpSMSMultifactor = async (\n\t\tuser: User,\n\t\tnewPhoneNumber: string\n\t): Promise => {\n\t\tconsole.log('Set up SMS multifactor', user, newPhoneNumber);\n\t\ttry {\n\t\t\tassert(user.challengeParam?.mfaEnrollmentSession, 'No session exists');\n\t\t\tconst session = await Auth.sendCustomChallengeAnswer(\n\t\t\t\tuser,\n\t\t\t\tJSON.stringify({ newPhoneNumber }),\n\t\t\t\t{\n\t\t\t\t\tmfaEnrollmentSession: user.challengeParam.mfaEnrollmentSession,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tassert(session.challengeName === 'CUSTOM_CHALLENGE', 'Something went wrong');\n\n\t\t\tconst {\n\t\t\t\tchallengeParam: { phoneNumber },\n\t\t\t} = session as {\n\t\t\t\tchallengeParam: { phoneNumber: string };\n\t\t\t};\n\n\t\t\tconsole.log('Set a new SMS phone number', session);\n\n\t\t\treturn {\n\t\t\t\tnextStep: AuthStep.needSMSMultifactorSetupVerification,\n\t\t\t\tuser,\n\t\t\t\tphoneNumber,\n\t\t\t};\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error(\"Couldn't set a new SMS phone number\", exc);\n\t\t\tthrow exc;\n\t\t}\n\t};\n\n\tconst verifySMSMultifactorSetup = async (\n\t\tuser: User,\n\t\tverificationCode: string\n\t): Promise => {\n\t\tconsole.log('Verify SMS setup', user, verificationCode);\n\t\ttry {\n\t\t\tassert(user.challengeParam?.mfaEnrollmentSession, 'No session exists');\n\t\t\tconst session = await Auth.sendCustomChallengeAnswer(\n\t\t\t\tuser,\n\t\t\t\tJSON.stringify({ verificationCode }),\n\t\t\t\t{\n\t\t\t\t\tmfaEnrollmentSession: user.challengeParam.mfaEnrollmentSession,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconsole.log('Verified SMS setup', session);\n\t\t\tawait Auth.setPreferredMFA(user, 'SMS');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error verifying SMS setup', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\ttry {\n\t\t\tconst currentUser = await Auth.currentAuthenticatedUser();\n\t\t\tupdateUser(currentUser);\n\n\t\t\tconsole.log('Logged in');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error logging in', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\treturn { nextStep: AuthStep.done };\n\t};\n\n\tconst verifySMSMultifactor = async (\n\t\tuser: User,\n\t\tverificationCode: string\n\t): Promise => {\n\t\tconsole.log('Verify SMS', user, verificationCode);\n\t\ttry {\n\t\t\tconst session = await Auth.confirmSignIn(user, verificationCode, 'SMS_MFA');\n\n\t\t\tconsole.log('Verified SMS', session);\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error verifying SMS', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\ttry {\n\t\t\tconst currentUser = await Auth.currentAuthenticatedUser();\n\t\t\tupdateUser(currentUser);\n\n\t\t\tconsole.log('Logged in');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error logging in', exc);\n\t\t\tconsole.log(exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\treturn { nextStep: AuthStep.done };\n\t};\n\n\tconst verifyTOTPMultifactorSetup = async (\n\t\tuser: CognitoUser,\n\t\ttotpResponse: string\n\t): Promise => {\n\t\tconsole.log('Verify TOTP setup', user, totpResponse);\n\t\ttry {\n\t\t\tconst session = await Auth.sendCustomChallengeAnswer(\n\t\t\t\tuser,\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tverificationCode: totpResponse,\n\t\t\t\t}),\n\t\t\t\t{ mfaEnrollmentSession: user.challengeParam.mfaEnrollmentSession }\n\t\t\t);\n\n\t\t\tconsole.log('Verified TOTP setup', session);\n\n\t\t\tawait Auth.setPreferredMFA(user, 'TOTP');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error verifying TOTP setup', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\ttry {\n\t\t\tconst currentUser = await Auth.currentAuthenticatedUser();\n\t\t\tupdateUser(currentUser);\n\n\t\t\tconsole.log('Logged in');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error logging in', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\treturn { nextStep: AuthStep.done };\n\t};\n\n\tconst verifyTOTPMultifactor = async (\n\t\tuser: CognitoUser,\n\t\ttotpResponse: string\n\t): Promise => {\n\t\tconsole.log('Verify TOTP', user, totpResponse);\n\t\ttry {\n\t\t\tconst session = await Auth.confirmSignIn(user, totpResponse, 'SOFTWARE_TOKEN_MFA');\n\n\t\t\tconsole.log('Verified TOTP', session);\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error verifying TOTP', exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\ttry {\n\t\t\tconst currentUser = await Auth.currentAuthenticatedUser();\n\t\t\tupdateUser(currentUser);\n\n\t\t\tconsole.log('Logged in');\n\t\t} catch (exc: unknown) {\n\t\t\tconsole.error('Error logging in', exc);\n\t\t\tconsole.log(exc);\n\t\t\tthrow exc;\n\t\t}\n\n\t\treturn { nextStep: AuthStep.done };\n\t};\n\n\tconst signOut = async () => {\n\t\tif (!isBrowser) return;\n\t\tawait Auth.signOut();\n\t\tif (window.localStorage.getItem('prep')) {\n\t\t\twindow.localStorage.removeItem('prep');\n\t\t\twindow.localStorage.removeItem('prep_step');\n\t\t}\n\t\tupdateUser(undefined);\n\t};\n\n\tconst signUp = async (email: string) => {\n\t\tif (user) {\n\t\t\tthrow new SignUpError('ALREADY_LOGGED_IN', \"Can't sign up when already logged in.\");\n\t\t}\n\n\t\ttry {\n\t\t\tawait axios.post(\n\t\t\t\t`${ApiEndpoints.public!}/signup`,\n\t\t\t\t{\n\t\t\t\t\temail,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tif ('code' in e) {\n\t\t\t\tswitch (e.code) {\n\t\t\t\t\tcase 'InvalidPasswordException':\n\t\t\t\t\t\tthrow new SignUpError('INVALID_PASSWORD', e.message);\n\t\t\t\t\tcase 'UserLambdaValidationException':\n\t\t\t\t\t\tif (e.message.match(/ERROR_DUPLICATE_EMAIL_FOUND/)) {\n\t\t\t\t\t\t\tthrow new SignUpError('USER_EXISTS');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new SignUpError('SERVICE_ERROR', e.message);\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new SignUpError('SERVICE_ERROR', e.message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst verifySignUp = async (\n\t\temail: string,\n\t\tpassword: string,\n\t\tcode: string,\n\t\tstate: string,\n\t\tfirstName?: string,\n\t\tlastName?: string\n\t) => {\n\t\tif (user) {\n\t\t\tthrow new VerifySignUpError(\n\t\t\t\t'ALREADY_LOGGED_IN',\n\t\t\t\t\"Can't verify signup when already logged in.\"\n\t\t\t);\n\t\t}\n\n\t\tlet userid = '';\n\n\t\ttry {\n\t\t\tconst response = await axios.post(\n\t\t\t\t`${ApiEndpoints.public!}/signup-verify-code`,\n\t\t\t\t{\n\t\t\t\t\temail,\n\t\t\t\t\tcode,\n\t\t\t\t\tpassword,\n\t\t\t\t\tstate,\n\t\t\t\t\tfirstName,\n\t\t\t\t\tlastName,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\t\t\tmixpanel.people.set({\n\t\t\t\t'Sign up date': new Date().toISOString(),\n\t\t\t\tUSER_ID: userid,\n\t\t\t\tIS_FOLX_USER: email.endsWith('@folxhealth.com'),\n\t\t\t});\n\t\t\tuserid = response.data.userid;\n\t\t} catch (e) {\n\t\t\tthrow new VerifySignUpError('SERVICE_ERROR', e.message);\n\t\t}\n\t\tconsole.log('Code verification successful.');\n\t\tawait signIn(userid, password);\n\t};\n\n\tconst requestNewCode = async (userid: string) => {\n\t\tif (user) throw new Error(\"Can't request a new code when signed in.\");\n\t\tawait Auth.resendSignUp(userid);\n\t};\n\n\tconst requestPasswordReset = async (email: string) => {\n\t\tif (user) throw new Error(\"Can't reset password when signed in.\");\n\t\tawait Auth.forgotPassword(email);\n\t};\n\n\tconst resetPassword = async (email: string, code: string, password: string) => {\n\t\tif (user)\n\t\t\tthrow new ResetPasswordError('ALREADY_LOGGED_IN', \"Can't reset password when signed in.\");\n\n\t\ttry {\n\t\t\tawait Auth.forgotPasswordSubmit(email, code, password);\n\t\t} catch (e) {\n\t\t\tif ('code' in e) {\n\t\t\t\tswitch (e.code) {\n\t\t\t\t\tcase 'CodeMismatchException':\n\t\t\t\t\t\tthrow new ResetPasswordError('WRONG_CODE', e.message);\n\t\t\t\t\tcase 'ExpiredCodeException':\n\t\t\t\t\t\tthrow new ResetPasswordError('EXPIRED_CODE', e.message);\n\t\t\t\t\tcase 'InvalidPasswordException':\n\t\t\t\t\t\tthrow new ResetPasswordError('INVALID_PASSWORD', e.message);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new ResetPasswordError('SERVICE_ERROR', e.message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst providerGetAuthToken = async () => {\n\t\tif (user === undefined) return '';\n\t\treturn await getAuthToken();\n\t};\n\n\tconst confirmPassword = async (email: string, oldPassword: string, newPassword: string) => {\n\t\ttry {\n\t\t\tif (!email || !oldPassword || !newPassword) {\n\t\t\t\tthrow new ConfirmPasswordError('SERVICE_ERROR', 'All parameters are required.');\n\t\t\t}\n\t\t\tconst user = await Auth.signIn(email, oldPassword);\n\t\t\tif (!user.username) {\n\t\t\t\tthrow new ConfirmPasswordError('SERVICE_ERROR', 'Did not receive username');\n\t\t\t}\n\t\t\tif (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\n\t\t\t\tawait Auth.completeNewPassword(user, newPassword);\n\t\t\t\tawait updateUser(await Auth.currentAuthenticatedUser());\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tif ('code' in e) {\n\t\t\t\tswitch (e.code) {\n\t\t\t\t\tcase 'InvalidParameterException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('INVALID_PASSWORD', e.message);\n\t\t\t\t\tcase 'InvalidPasswordException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('INVALID_PASSWORD', e.message);\n\t\t\t\t\tcase 'NotAuthorizedException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('NOT_AUTHORIZED', e.message);\n\t\t\t\t\tcase 'PasswordResetRequiredException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('PASSWORD_RESET_REQUIRED', e.message);\n\t\t\t\t\tcase 'UserNotConfirmedException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('USER_ERROR', e.message);\n\t\t\t\t\tcase 'UserNotFoundException':\n\t\t\t\t\t\tthrow new ConfirmPasswordError('USER_ERROR', e.message);\n\t\t\t\t\tcase 'UserLambdaValidationException':\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new ConfirmPasswordError('SERVICE_ERROR', e.message);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn {\n\t\tuser: user as User,\n\t\tuserId: (user?.getUsername() ?? '') as string,\n\t\temail: user?.getSignInUserSession()?.getIdToken().payload.email as string,\n\t\tloggedIn: !!user,\n\t\tinitialized,\n\t\tsignIn,\n\t\tsignOut,\n\t\tsignUp,\n\t\tverifySignUp,\n\t\trequestNewCode,\n\t\trequestPasswordReset,\n\t\tresetPassword,\n\t\tconfirmPassword,\n\t\tgetAuthToken: providerGetAuthToken,\n\t\tverifySMSMultifactor,\n\t\tsetUpSMSMultifactor,\n\t\tverifySMSMultifactorSetup,\n\t\tverifyTOTPMultifactorSetup,\n\t\tverifyTOTPMultifactor,\n\t};\n};\n","import { ApolloClient, ApolloLink, HttpLink, InMemoryCache } from '@apollo/client';\nimport { createContext } from 'react';\n\nimport { ApiEndpoints } from '@utils/endpoints';\nimport { isBrowser } from '@utils/isBrowser';\n\nimport { authLink, errorLink } from '@providers/ApolloProvider';\n\nexport interface GraphQLV2ContextProps {\n\tclient: ApolloClient;\n}\n\nexport const graphQLv2ApolloClient = () => {\n\tconst httpLink = new HttpLink({\n\t\turi: (operation) =>\n\t\t\t`${ApiEndpoints.folxGraphqlV2}?operation=${encodeURIComponent(operation.operationName)}`,\n\t\t...(!isBrowser && {\n\t\t\tfetch: () => {\n\t\t\t\tthrow new Error(\"Can't make a dynamic query outside of a browser.\");\n\t\t\t},\n\t\t}),\n\t});\n\n\tconst link = ApolloLink.from([errorLink, authLink.concat(httpLink)]);\n\n\tconst client = new ApolloClient({\n\t\tcache: new InMemoryCache(),\n\t\tlink,\n\t});\n\n\treturn client;\n};\n\nconst GraphQLv2Context = createContext({\n\tclient: graphQLv2ApolloClient(),\n});\n\nexport default GraphQLv2Context;\n","import { Property } from 'csstype';\n\nimport { ColorTypes, FontFamilyTypes, FontTypes, TintTypes } from '@folx-types/theme';\n\nimport theme from '@theme/FolxTheme';\n\nexport type Tint = (color: ColorTypes | string) => string;\n\ntype Font = {\n\tlineHeight: number;\n\tfontSize: {\n\t\tmobile: string;\n\t\ttablet: string;\n\t};\n\tfontWeight: FontTypes;\n};\n\nconst IdentityTint: Tint = (color) => theme.colors[color];\n\nexport interface IComponentThemes {\n\tfontFamily: string;\n\tbodyText: {\n\t\tcolor: string;\n\t\ttint?: Tint;\n\t};\n\tbasicText: {\n\t\tlabelMarginBottom: string;\n\t\tsmall: Font;\n\t\tsmallText: Font;\n\t\tbody: Font;\n\t\tfield: Font;\n\t\tbutton: Font;\n\t\tpill: Font;\n\t\tpillText: Font;\n\t\tfineprint: Font;\n\t\tfineprintBold: Font;\n\t};\n\tbutton: {\n\t\tborderRadius: string;\n\t\tpadding: string;\n\t\twidth?: string;\n\t\tprimary: {\n\t\t\tbgColor: ColorTypes;\n\t\t\tbgTint?: Tint;\n\t\t\tlabelColor: ColorTypes;\n\t\t\tfocusColor: ColorTypes;\n\t\t\tfocusTint?: Tint;\n\t\t\tfocusLabelColor: ColorTypes;\n\t\t\tfocusLabelTint?: Tint;\n\t\t\tdisabledColor: ColorTypes;\n\t\t\tdisabledTint?: Tint;\n\t\t\tdisabledLabelColor: ColorTypes;\n\t\t\tdisabledLabelTint?: Tint;\n\t\t\tborder?: string;\n\t\t\tfocusBorder?: string;\n\t\t\tdisabledBorder?: string;\n\t\t\tborderRadius?: string;\n\t\t\tlabelPadding?: string;\n\t\t\tlabelSize?: string;\n\t\t\tpadding?: string;\n\t\t\twidth?: string;\n\t\t};\n\t\tsecondary: {\n\t\t\tbgColor: ColorTypes;\n\t\t\tbgTint: Tint;\n\t\t\tlabelColor: ColorTypes;\n\t\t\tfocusColor: ColorTypes;\n\t\t\tfocusTint: Tint;\n\t\t\tfocusLabelColor: ColorTypes;\n\t\t\tfocusLabelTint: Tint;\n\t\t\tdisabledColor: ColorTypes;\n\t\t\tdisabledTint: Tint;\n\t\t\tdisabledLabelColor: ColorTypes;\n\t\t\tdisabledLabelTint: Tint;\n\t\t\tborder?: string;\n\t\t\tfocusBorder?: string;\n\t\t\tdisabledBorder?: string;\n\t\t\tborderRadius?: string;\n\t\t\tlabelPadding?: string;\n\t\t\tlabelSize?: string;\n\t\t\tpadding?: string;\n\t\t\twidth?: string;\n\t\t};\n\t};\n\tcheckbox: {\n\t\tcheckedColor: ColorTypes;\n\t\thoverColor: ColorTypes;\n\t\tcheckColor: ColorTypes;\n\t\tboxOutline?: boolean;\n\t\tcheckedTint?: TintTypes;\n\t\thoverTint?: TintTypes;\n\t};\n\teyebrow: {\n\t\ttextTransform: Property.TextTransform;\n\t};\n\ttextLink: {\n\t\tcolor: {\n\t\t\tlight: string;\n\t\t\tdark: string;\n\t\t};\n\t\tdesktopSize: string;\n\t\tmobileSize: string;\n\t\tbold: {\n\t\t\tfontWeight: FontTypes;\n\t\t\tfontFamily: FontFamilyTypes;\n\t\t};\n\t\tnormal: {\n\t\t\tfontWeight: FontTypes;\n\t\t\tfontFamily: FontFamilyTypes;\n\t\t};\n\t};\n\tfolxHeader: {\n\t\tbackgroundColor: string;\n\t\tbackgroundTint?: Tint;\n\t\tborderBottom?: string;\n\t};\n\theaderBar: {\n\t\tactiveColor: string;\n\t\tactiveTint?: Tint;\n\t\tinactiveColor: string;\n\t\tinactiveTint?: Tint;\n\t\tanimated?: boolean;\n\t};\n\theadingText: {\n\t\tbaseFontSize: string;\n\t\tupFontSize: string;\n\t};\n\tpageContainer: {\n\t\tbackground: string;\n\t};\n\tradio: {\n\t\tdefault: {\n\t\t\tinnerSize: string;\n\t\t\touterSize: string;\n\t\t\tcheckedColor: string;\n\t\t\thoverColor: string;\n\t\t\tdisabledColor: string;\n\t\t};\n\t\tsmall: {\n\t\t\tinnerSize: string;\n\t\t\touterSize: string;\n\t\t\tcheckedColor: string;\n\t\t\thoverColor: string;\n\t\t\tdisabledColor: string;\n\t\t};\n\t};\n\tselectableButton: {\n\t\tcolor: string;\n\t\ttint?: Tint;\n\t\tborderColor: string;\n\t\tborderTint?: Tint;\n\t\tdisabledColor: string;\n\t\tdisabledTint?: Tint;\n\t};\n\tsubheadingText: {\n\t\tbaseFontSize: string;\n\t\tupFontSize: string;\n\t};\n\tnotification: {\n\t\tborderRadius: string;\n\t};\n\ttextInput: {\n\t\terrorColor: string;\n\t\terrorFontSize: string;\n\t\terrorLineHeight: string;\n\t};\n\tlistbox: {\n\t\tfont: Font;\n\t\tpadding: string;\n\t};\n\tgradient?: string;\n\tname: string;\n}\n\nexport interface IFlowThemes {\n\tdefault: IComponentThemes;\n\tdashboard: IComponentThemes;\n\tprep: IComponentThemes;\n\tonboarding: IComponentThemes;\n\tvc: IComponentThemes;\n\thrt_e: IComponentThemes;\n\thrt_t: IComponentThemes;\n}\n\nconst defaultTheme: IComponentThemes = {\n\tfontFamily: `'Chalet', sans-serif`,\n\tgradient: `radial-gradient(29% 35% at 4% 36%, #eae1b4 7%, #073aff00 100%),\n\t\tradial-gradient(18% 28% at 24% 50%, #ecdbcb 7%, #073aff00 100%),\n\t\tradial-gradient(58% 53% at 61% 81%, #edea6e 0%, #073aff00 100%),\n\t\tradial-gradient(43% 54% at 16% 95%, #f7d9ad 2%, #f7d4aa 39%, #073aff00 100%),\n\t\tradial-gradient(42% 53% at 34% 72%, #ffffffff 7%, #073aff00 100%),\n\t\tradial-gradient(36% 67% at 90% 76%, #d2d6f9 47%, #073aff00 100%),\n\t\tradial-gradient(87% 85% at 73% 37%, #97e5ed 39%, #073aff00 100%),\n\t\tlinear-gradient(125deg, #efea6d 0%, #efea6d 100%)`,\n\tbodyText: {\n\t\tcolor: theme.colors.black,\n\t},\n\tbasicText: {\n\t\tlabelMarginBottom: theme.spacing.xs,\n\t\tbody: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.8rem', tablet: '2rem' },\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t\tsmall: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.6rem', tablet: '1.8rem' },\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t\tsmallText: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.6rem', tablet: '1.8rem' },\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t\tfield: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.8rem', tablet: '2rem' },\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t\tbutton: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '2rem', tablet: '2.2rem' },\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t\tpill: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.4rem', tablet: '1.6rem' },\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t\tpillText: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.4rem', tablet: '1.6rem' },\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t\tfineprint: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.2rem', tablet: '1.4rem' },\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t\tfineprintBold: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.2rem', tablet: '1.4rem' },\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t},\n\tbutton: {\n\t\tborderRadius: theme.radius.xl,\n\t\tpadding: `${theme.spacing.sm} ${theme.spacing.lg}`,\n\t\twidth: 'auto',\n\t\tprimary: {\n\t\t\tlabelColor: 'black',\n\t\t\tlabelSize: theme.fontSizes.body.sm,\n\t\t\tbgColor: 'transparent',\n\t\t\tbgTint: IdentityTint,\n\t\t\tborder: '0.1rem solid black',\n\t\t\tfocusColor: 'black',\n\t\t\tfocusTint: IdentityTint,\n\t\t\tfocusLabelColor: 'white',\n\t\t\tfocusLabelTint: IdentityTint,\n\t\t\tdisabledColor: 'darkGray',\n\t\t\tdisabledTint: IdentityTint,\n\t\t\tdisabledLabelColor: 'black',\n\t\t\tdisabledLabelTint: theme.transparency.transparency50,\n\t\t},\n\t\tsecondary: {\n\t\t\tlabelColor: 'white',\n\t\t\tlabelSize: theme.fontSizes.body.sm,\n\t\t\tbgColor: 'black',\n\t\t\tbgTint: IdentityTint,\n\t\t\tfocusBorder: '0.1rem solid black',\n\t\t\tfocusColor: 'transparent',\n\t\t\tfocusTint: IdentityTint,\n\t\t\tfocusLabelColor: 'black',\n\t\t\tfocusLabelTint: IdentityTint,\n\t\t\tdisabledColor: 'darkGray',\n\t\t\tdisabledTint: IdentityTint,\n\t\t\tdisabledLabelColor: 'black',\n\t\t\tdisabledLabelTint: theme.transparency.transparency50,\n\t\t},\n\t},\n\tcheckbox: {\n\t\tcheckedColor: 'black',\n\t\thoverColor: 'cyan',\n\t\thoverTint: 'lighten80',\n\t\tcheckColor: 'white',\n\t},\n\tradio: {\n\t\tdefault: {\n\t\t\tinnerSize: theme.spacing.sm,\n\t\t\touterSize: theme.spacing.md,\n\t\t\tcheckedColor: theme.colors.lilacMedium,\n\t\t\thoverColor: theme.colors.lightBeige,\n\t\t\tdisabledColor: theme.colors.disabledGray,\n\t\t},\n\t\tsmall: {\n\t\t\tinnerSize: theme.spacing.xssm,\n\t\t\touterSize: theme.spacing.smmd,\n\t\t\tcheckedColor: theme.colors.black,\n\t\t\thoverColor: theme.colors.black,\n\t\t\tdisabledColor: theme.colors.disabledGray,\n\t\t},\n\t},\n\teyebrow: {\n\t\ttextTransform: 'none',\n\t},\n\ttextLink: {\n\t\tcolor: {\n\t\t\tdark: theme.colors.black,\n\t\t\tlight: theme.colors.white,\n\t\t},\n\t\tdesktopSize: theme.fontSizes.body.md,\n\t\tmobileSize: theme.fontSizes.body.sm,\n\t\tbold: {\n\t\t\tfontFamily: `'Montserrat', sans-serif`,\n\t\t\tfontWeight: 'bold',\n\t\t},\n\t\tnormal: {\n\t\t\tfontFamily: `'Chalet', sans-serif`,\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t},\n\tfolxHeader: {\n\t\tbackgroundColor: theme.colors.white,\n\t},\n\theaderBar: {\n\t\tactiveColor: theme.colors.lilac,\n\t\tinactiveColor: theme.colors.gray,\n\t\tanimated: true,\n\t},\n\theadingText: {\n\t\tbaseFontSize: theme.fontSizes.header.sm,\n\t\tupFontSize: theme.fontSizes.header.md,\n\t},\n\tsubheadingText: {\n\t\tbaseFontSize: theme.fontSizes.body.md,\n\t\tupFontSize: theme.fontSizes.body.lg,\n\t},\n\tnotification: {\n\t\tborderRadius: theme.radius.none,\n\t},\n\tpageContainer: {\n\t\tbackground: theme.colors.white,\n\t},\n\tselectableButton: {\n\t\tcolor: theme.colors.cyan,\n\t\ttint: theme.tints.lighten80,\n\t\tborderColor: theme.colors.black,\n\t\tdisabledColor: theme.colors.lightGray,\n\t},\n\ttextInput: {\n\t\terrorColor: theme.tints.darken40(theme.colors.red),\n\t\terrorFontSize: theme.fontSizes.body.sm,\n\t\terrorLineHeight: theme.lineHeights.body.sm,\n\t},\n\tlistbox: {\n\t\tfont: {\n\t\t\tlineHeight: 1.3,\n\t\t\tfontSize: { mobile: '1.8rem', tablet: '2rem' },\n\t\t\tfontWeight: 'normal',\n\t\t},\n\t\tpadding: '2rem 1rem',\n\t},\n\tname: 'default',\n};\n\nconst flowThemes: IFlowThemes = {\n\tdefault: defaultTheme,\n\tdashboard: {\n\t\t...defaultTheme,\n\t\tbasicText: {\n\t\t\t...defaultTheme.basicText,\n\t\t\tlabelMarginBottom: theme.spacing.sm,\n\t\t\tbody: {\n\t\t\t\t...defaultTheme.basicText.body,\n\t\t\t\tfontSize: { mobile: '1.6rem', tablet: '2rem' },\n\t\t\t},\n\t\t\tfield: {\n\t\t\t\t...defaultTheme.basicText.field,\n\t\t\t\tfontSize: { mobile: '1.6rem', tablet: '2rem' },\n\t\t\t},\n\t\t},\n\t\tbutton: {\n\t\t\t...defaultTheme.button,\n\t\t\tborderRadius: theme.radius.xl,\n\t\t\tpadding: `${theme.spacing.sm} ${theme.spacing.lg}`,\n\t\t\tprimary: {\n\t\t\t\t...defaultTheme.button.primary,\n\t\t\t\tlabelColor: 'black',\n\t\t\t\tbgColor: 'transparent',\n\t\t\t\tborder: '0.1rem solid black',\n\t\t\t\tborderRadius: '2rem',\n\t\t\t\tpadding: `1.4rem ${theme.spacing.md}`,\n\t\t\t\tlabelSize: theme.fontSizes.body.xxs,\n\t\t\t\twidth: 'fit-content',\n\t\t\t},\n\t\t\tsecondary: {\n\t\t\t\t...defaultTheme.button.secondary,\n\t\t\t\tfocusBorder: '0.1rem solid black',\n\t\t\t\tfocusColor: 'transparent',\n\t\t\t\tfocusLabelColor: 'black',\n\t\t\t\tlabelSize: theme.fontSizes.body.sm,\n\t\t\t},\n\t\t},\n\t\teyebrow: {\n\t\t\ttextTransform: 'none',\n\t\t},\n\t\tnotification: {\n\t\t\tborderRadius: theme.radius.md,\n\t\t},\n\t\tpageContainer: {\n\t\t\tbackground: theme.colors.lightGray,\n\t\t},\n\t\tfolxHeader: {\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t\tborderBottom: `solid 1px ${theme.colors.gray}`,\n\t\t},\n\t\tname: 'dashboard',\n\t\theadingText: {\n\t\t\t...defaultTheme.headingText,\n\t\t\tbaseFontSize: theme.fontSizes.body.lg,\n\t\t},\n\t\tsubheadingText: {\n\t\t\t...defaultTheme.subheadingText,\n\t\t\tbaseFontSize: theme.fontSizes.body.smmd,\n\t\t\tupFontSize: theme.fontSizes.body.md,\n\t\t},\n\t},\n\tonboarding: {\n\t\t...defaultTheme,\n\t\tpageContainer: {\n\t\t\tbackground: theme.colors.white,\n\t\t},\n\t\ttextInput: {\n\t\t\terrorColor: theme.tints.darken40(theme.colors.red),\n\t\t\terrorFontSize: theme.fontSizes.body.sm,\n\t\t\terrorLineHeight: theme.lineHeights.body.sm,\n\t\t},\n\t\tname: 'onboarding',\n\t},\n\tvc: {\n\t\t...defaultTheme,\n\t\tbutton: {\n\t\t\t...defaultTheme.button,\n\t\t\tborderRadius: theme.radius.xl,\n\t\t\tpadding: `${theme.spacing.sm} ${theme.spacing.lg}`,\n\t\t},\n\t\theaderBar: {\n\t\t\tactiveColor: theme.colors.beige,\n\t\t\tinactiveColor: theme.colors.beige,\n\t\t\tinactiveTint: theme.tints.lighten80,\n\t\t\tanimated: true,\n\t\t},\n\t\tselectableButton: {\n\t\t\tcolor: theme.colors.beige,\n\t\t\ttint: theme.tints.lighten80,\n\t\t\tborderColor: theme.colors.beige,\n\t\t\tdisabledColor: theme.colors.lightGray,\n\t\t},\n\t\ttextInput: {\n\t\t\terrorColor: theme.tints.darken40(theme.colors.red),\n\t\t\terrorFontSize: theme.fontSizes.body.sm,\n\t\t\terrorLineHeight: theme.lineHeights.body.sm,\n\t\t},\n\t\tname: 'vc',\n\t},\n\thrt_t: {\n\t\t...defaultTheme,\n\t\tbutton: {\n\t\t\t...defaultTheme.button,\n\t\t\twidth: '100%',\n\t\t},\n\t\tfolxHeader: {\n\t\t\tbackgroundColor: theme.colors.white,\n\t\t},\n\t\theaderBar: {\n\t\t\tactiveColor: theme.colors.cyan,\n\t\t\tinactiveColor: theme.colors.gray,\n\t\t\tanimated: true,\n\t\t},\n\t\tselectableButton: {\n\t\t\tcolor: theme.colors.cyan,\n\t\t\ttint: theme.tints.lighten80,\n\t\t\tborderColor: theme.colors.black,\n\t\t\tdisabledColor: theme.colors.lightGray,\n\t\t},\n\t\ttextInput: {\n\t\t\terrorColor: theme.tints.darken40(theme.colors.red),\n\t\t\terrorFontSize: theme.fontSizes.body.sm,\n\t\t\terrorLineHeight: theme.lineHeights.body.sm,\n\t\t},\n\t\tname: 'hrt_t',\n\t},\n\thrt_e: {\n\t\t...defaultTheme,\n\t\tbutton: {\n\t\t\t...defaultTheme.button,\n\t\t\twidth: '100%',\n\t\t},\n\t\theaderBar: {\n\t\t\tactiveColor: theme.colors.cyan,\n\t\t\tinactiveColor: theme.colors.gray,\n\t\t\tanimated: true,\n\t\t},\n\t\tselectableButton: {\n\t\t\tcolor: theme.colors.cyan,\n\t\t\ttint: theme.tints.lighten80,\n\t\t\tborderColor: theme.colors.black,\n\t\t\tdisabledColor: theme.colors.lightGray,\n\t\t},\n\t\ttextInput: {\n\t\t\terrorColor: theme.tints.darken40(theme.colors.red),\n\t\t\terrorFontSize: theme.fontSizes.body.sm,\n\t\t\terrorLineHeight: theme.lineHeights.body.sm,\n\t\t},\n\t\tname: 'hrt_e',\n\t},\n};\n\nexport default flowThemes;\n","import { FlowTypes } from '@folx-types/flow';\n\nimport flowThemes from './FlowThemes';\n\nexport const getThemeForFlow = (flow: FlowTypes) =>\n\tflow in flowThemes ? flowThemes[flow as keyof typeof flowThemes] : flowThemes.default;\n","import { shade, tint, transparentize } from 'polished';\n\nimport {\n\tSpacingTypes,\n\tColorTypes,\n\tRadiusTypes,\n\tBreakpointTypes,\n\tFontSizeTypes,\n} from '@folx-types/theme';\n\nconst size = {\n\tbase: '0px',\n\tmobileS: '320px',\n\tmobileM: '375px',\n\tmobileL: '425px',\n\ttablet: '768px',\n\tlaptop: '1024px',\n\tlaptopM: '1280px',\n\tlaptopL: '1440px',\n\tdesktop: '2560px',\n};\n\nconst colors: { [Type in ColorTypes]: string } = {\n\ttransparent: '#00000000',\n\tblack: '#000000',\n\twhite: '#ffffff',\n\tcyan: '#00ffff',\n\tlightCyan: '#99feff',\n\tdarkCyan: '#9cc7c7',\n\tyellow: '#ffff00',\n\tred: '#ff0000',\n\tlightRed: '#e9c0c0',\n\tcardRed: '#f0e2e2',\n\tdarkRed: '#990000',\n\tgreen: '#dafabc',\n\tgreenLight: '#29cc6a14',\n\tlilac: '#c79bff',\n\tlilacMedium: '#9f7bcc',\n\tlilacLight: '#f6efff',\n\tlavender: '#ddd7e3',\n\tlightLavender: '#eee5f8',\n\tredOrange: '#ff9999',\n\tcardBeige: '#f0eae2',\n\tlightBeige: '#f8f7f5',\n\tbeige: '#f4e3cf',\n\tdarkBeige: '#e9d4c0',\n\tpink: '#ffa1d3',\n\tdarkPink: '#f57eb6',\n\tlightPink: '#fccbe5',\n\tgray: '#ebebeb',\n\tdarkGray: '#d8d8d8',\n\tlightGray: '#f4f4f4',\n\tdisabledGray: '#f2f4f7',\n\tborderGray: '#dbdee1',\n\tmodalGray: '#0000004f',\n};\n\nconst tints = {\n\tdarken20: shade(0.2),\n\tdarken30: shade(0.3),\n\tdarken40: shade(0.4),\n\tdarken50: shade(0.5),\n\tdarken60: shade(0.6),\n\tdarken70: shade(0.7),\n\tdarken80: shade(0.8),\n\tlighten20: tint(0.2),\n\tlighten30: tint(0.3),\n\tlighten40: tint(0.4),\n\tlighten50: tint(0.5),\n\tlighten60: tint(0.6),\n\tlighten70: tint(0.7),\n\tlighten80: tint(0.8),\n};\n\nconst transparency = {\n\ttransparency10: transparentize(0.1),\n\ttransparency15: transparentize(0.15),\n\ttransparency20: transparentize(0.2),\n\ttransparency25: transparentize(0.25),\n\ttransparency30: transparentize(0.3),\n\ttransparency35: transparentize(0.35),\n\ttransparency40: transparentize(0.4),\n\ttransparency45: transparentize(0.45),\n\ttransparency50: transparentize(0.5),\n\ttransparency55: transparentize(0.55),\n\ttransparency60: transparentize(0.6),\n\ttransparency65: transparentize(0.65),\n\ttransparency70: transparentize(0.7),\n\ttransparency75: transparentize(0.75),\n\ttransparency80: transparentize(0.8),\n\ttransparency85: transparentize(0.85),\n\ttransparency90: transparentize(0.9),\n\ttransparencyFull: transparentize(1),\n};\n\nconst zIndexes = {\n\tbackground: 1,\n\tforeground: 2,\n\tcontent: 3,\n\theader: 4,\n};\n\nexport default {\n\tcolors,\n\ttints,\n\ttransparency,\n\tzIndexes,\n\n\tspacing: <{ [Type in SpacingTypes]: string }>{\n\t\tauto: 'auto',\n\t\tnone: '0rem',\n\t\txxxs: '0.2rem',\n\t\txxs: '0.4rem',\n\t\txs: '0.8rem',\n\t\txssm: '1.2rem',\n\t\tsm: '1.6rem',\n\t\tsmmd: '2.0rem',\n\t\tmd: '2.4rem',\n\t\tlg: '3.2rem',\n\t\tlgxl: '4.8rem',\n\t\txl: '5.6rem',\n\t\txxl: '6.4rem',\n\t\txxxl: '9.6rem',\n\t\txxxxl: '12.8rem',\n\t\txxxxxl: '15.6rem',\n\t\thalf: '50%',\n\t},\n\n\tradius: <{ [Type in RadiusTypes]: string }>{\n\t\tnone: '0rem',\n\t\tsm: '0.4rem',\n\t\tsmmd: '0.6rem',\n\t\tmd: '0.8rem',\n\t\tlg: '1.2rem',\n\t\txl: '1.6rem',\n\t\txxl: '2rem',\n\t\txxxl: '2.4rem',\n\t\txxxxl: '3.2rem',\n\t\thalf: '50%',\n\t},\n\n\tlineHeights: {\n\t\theader: {\n\t\t\txxl: '1.3',\n\t\t\txl: '1.3',\n\t\t\tlg: '1.3',\n\t\t\tlgh: '1.3' /* Hatton */,\n\t\t\tmd: '1.3',\n\t\t\tsm: '1.3',\n\t\t\txs: '1.3',\n\t\t\txxs: '1.3',\n\t\t},\n\t\tbody: {\n\t\t\txxl: '1.3',\n\t\t\txl: '1.3',\n\t\t\tlg: '1.3',\n\t\t\tmd: '1.3',\n\t\t\tsm: '1.3',\n\t\t\txs: '1.3',\n\t\t\txxs: '1.3',\n\t\t},\n\t},\n\n\tfontSizes: {\n\t\theader: <{ [Type in FontSizeTypes]: string }>{\n\t\t\txxl: '6.4rem',\n\t\t\txl: '5.2rem',\n\t\t\tlg: '4.2rem',\n\t\t\tmd: '3.2rem',\n\t\t\tsm: '2.8rem',\n\t\t\txs: '2.4rem',\n\t\t\txxs: '2.0rem',\n\t\t},\n\t\tbody: <{ [Type in FontSizeTypes]: string }>{\n\t\t\txxl: '2.6rem',\n\t\t\txl: '2.4rem',\n\t\t\tlg: '2.2rem',\n\t\t\tmd: '2.0rem',\n\t\t\tsmmd: '1.8rem',\n\t\t\tsm: '1.6rem',\n\t\t\txs: '1.4rem',\n\t\t\txxs: '1.2rem',\n\t\t},\n\t},\n\n\tshadow: {\n\t\tbox: '0px 0px 8px rgba(0, 0, 0, 0.25)',\n\t\tnewBox: '0px 2px 4px -1px rgba(0, 0, 0, 0.25)',\n\t\tmsspBox: '0px 3px 6px rgba(0, 0, 0, 0.08)',\n\t\tmenuBox: '0px 2.6px 7.67px 0px rgba(0, 0, 0, 0.09)',\n\t\tprofileBox: '0px 2px 6.5px 0px rgba(0, 0, 0, 0.09)',\n\t\tsliderBox: '0px 5px 12px rgba(0, 0, 0, 0.1)',\n\t\thoverBox: '0px 6px 13px rgba(0, 0, 0, 0.2)',\n\t},\n\n\tresponsive: {\n\t\tsizes: <{ [Type in BreakpointTypes]: string }>{\n\t\t\tbase: size.base,\n\t\t\tmobileS: size.mobileS,\n\t\t\tmobileM: size.mobileM,\n\t\t\tmobileL: size.mobileL,\n\t\t\ttablet: size.tablet,\n\t\t\tlaptop: size.laptop,\n\t\t\tlaptopM: size.laptopM,\n\t\t\tlaptopL: size.laptopL,\n\t\t\tdesktop: size.desktop,\n\t\t},\n\n\t\tbreakpoints: <{ [Type in BreakpointTypes]: string }>{\n\t\t\tbase: `(min-width: ${size.base})`,\n\t\t\tmobileS: `(min-width: ${size.mobileS})`,\n\t\t\tmobileM: `(min-width: ${size.mobileM})`,\n\t\t\tmobileL: `(min-width: ${size.mobileL})`,\n\t\t\ttablet: `(min-width: ${size.tablet})`,\n\t\t\tlaptop: `(min-width: ${size.laptop})`,\n\t\t\tlaptopM: `(min-width: ${size.laptopM})`,\n\t\t\tlaptopL: `(min-width: ${size.laptopL})`,\n\t\t\tdesktop: `(min-width: ${size.desktop})`,\n\t\t},\n\t},\n};\n","import FolxTheme from './FolxTheme';\n\nexport default FolxTheme;\n","import { shade, tint, transparentize } from 'polished';\n\nimport { SpacingTypes, ColorTypes, RadiusTypes } from '@folx-types/theme';\n\nconst size = {\n\tbase: '0px',\n\tmobileS: '320px',\n\tmobileM: '375px',\n\tmobileL: '425px',\n\ttablet: '768px',\n\tlaptop: '1024px',\n\tlaptopL: '1440px',\n\tdesktop: '2560px',\n};\n\nconst colors: { [Type in ColorTypes]: string } = {\n\tbeige: '#f4e3cf',\n\tblack: '#000000',\n\tborder: '#d7d7d7',\n\tborderBeige: '#e9e1d6',\n\tcyan: '#00ffff',\n\tdarkBeige: '#f0eae2',\n\tdarkCyan: '#d3f0f0',\n\tdarkGray: '#ebebeb',\n\tdarkLavender: '#ddd7e3',\n\tdarkPink: '#f57eb6',\n\tdarkYellow: '#f1f1d3',\n\tgray: '#ebebeb',\n\tgreen: '#00ff00',\n\tlavender: '#c79aff',\n\tlightBeige: '#f8f7f5',\n\tlightCyan: '#e0fcfc',\n\tlightGray: '#f5f5f5',\n\tlightLavender: '#f4effa',\n\tlightPink: '#fccbe5',\n\tlightYellow: '#fafae0',\n\tlilac: '#c79aff',\n\tpink: '#ff62b5',\n\tred: '#ff0000',\n\ttransparent: '#00000000',\n\twhite: '#ffffff',\n\tyellow: '#ffff00',\n};\n\nconst tints = {\n\tdarken20: shade(0.2),\n\tdarken30: shade(0.3),\n\tdarken40: shade(0.4),\n\tdarken50: shade(0.5),\n\tdarken60: shade(0.6),\n\tdarken70: shade(0.7),\n\tdarken80: shade(0.8),\n\tlighten20: tint(0.2),\n\tlighten30: tint(0.3),\n\tlighten40: tint(0.4),\n\tlighten50: tint(0.5),\n\tlighten60: tint(0.6),\n\tlighten70: tint(0.7),\n\tlighten80: tint(0.8),\n};\n\nconst transparency = {\n\ttransparency10: transparentize(0.1),\n\ttransparency20: transparentize(0.2),\n\ttransparency30: transparentize(0.3),\n\ttransparency40: transparentize(0.4),\n\ttransparency50: transparentize(0.5),\n\ttransparency60: transparentize(0.6),\n\ttransparency70: transparentize(0.7),\n\ttransparency80: transparentize(0.8),\n\ttransparency90: transparentize(0.9),\n};\n\nconst zIndexes = {\n\tbackground: 1,\n\tforeground: 2,\n\tcontent: 3,\n\theader: 4,\n\tdialog: 5,\n};\n\nexport default {\n\tcolors,\n\ttints,\n\ttransparency,\n\tzIndexes,\n\n\tfullWidthBackground: `max-width: 100% !important;\n\t\t\t> * {\n\t\t\t\tmargin-left: auto;\n\t\t\t\tmargin-right: auto;\n\n\t\t\t}`,\n\n\tmaxWidthCenter: `\n\tmargin-left: auto;\n\tmargin-right: auto;`,\n\n\tspacing: <{ [Type in SpacingTypes]: string }>{\n\t\txs: '0.8rem',\n\t\tsm: '1.6rem',\n\t\tmd: '2.4rem',\n\t\tlg: '3.2rem',\n\t\tlgxl: '4.8rem',\n\t\txl: '5.6rem',\n\t\txxl: '6.4rem',\n\t\txxxl: '9.6rem',\n\t\txxxxl: '12.8rem',\n\t},\n\n\tradius: <{ [Type in RadiusTypes]: string }>{\n\t\tnone: '0rem',\n\t\tsm: '0.4rem',\n\t\tmd: '0.8rem',\n\t\tlg: '1.5rem',\n\t\txl: '2.0rem',\n\t\txxl: '3.0rem',\n\t\txxxl: '5.0rem',\n\t\thalf: '50%',\n\t},\n\n\tlineHeights: {\n\t\theader: {\n\t\t\txxl: '1.3',\n\t\t\txl: '1.3',\n\t\t\tlg: '1.3',\n\t\t\tlgh: '1.3' /* Hatton */,\n\t\t\tmd: '1.3',\n\t\t\tsm: '1.3',\n\t\t\txs: '1.3',\n\t\t},\n\t\tbody: {\n\t\t\txxl: '1.3',\n\t\t\txl: '1.3',\n\t\t\tlg: '1.3',\n\t\t\tmd: '1.3',\n\t\t\tsm: '1.3',\n\t\t\txs: '1.5',\n\t\t\tlabel: '1.8',\n\t\t},\n\t},\n\n\tfontSizes: {\n\t\theader: {\n\t\t\txxl: '7.2rem',\n\t\t\txl: '5rem',\n\t\t\tlg: '4.2rem',\n\t\t\tmd: '3.4rem',\n\t\t\tsm: '2.4rem',\n\t\t\txs: '1.8rem',\n\t\t},\n\t\theaderMobile: {\n\t\t\txxl: '3.4rem',\n\t\t\txl: '3rem',\n\t\t\tlg: '2.6rem',\n\t\t\tmd: '2.2rem',\n\t\t\tsm: '1.8rem',\n\t\t\txs: '1.6rem',\n\t\t},\n\t\tbody: {\n\t\t\txxl: '3.2rem',\n\t\t\txl: '2.4rem',\n\t\t\tlg: '2.2rem',\n\t\t\tmd: '2.0rem',\n\t\t\tsm: '1.6rem',\n\t\t\txs: '1.2rem',\n\t\t\tlabel: '1.4rem',\n\t\t},\n\t},\n\n\tfonts: {\n\t\tprimary: 'Hatton',\n\t\tsecondary: 'Chalet-LondonSixty, sans-serif',\n\t\ttertiary: 'Montserrat',\n\t\tmontserrat: 'Montserrat',\n\t},\n\n\tshadow: {\n\t\tbox: '0px 0px 8px rgba(0, 0, 0, 0.25)',\n\t},\n\n\tresponsive: {\n\t\tsizes: {\n\t\t\tbase: size.base,\n\t\t\tmobileS: size.mobileS,\n\t\t\tmobileM: size.mobileM,\n\t\t\tmobileL: size.mobileL,\n\t\t\ttablet: size.tablet,\n\t\t\tlaptop: size.laptop,\n\t\t\tlaptopL: size.laptopL,\n\t\t\tdesktop: size.desktop,\n\t\t},\n\n\t\tbreakpoints: {\n\t\t\tbase: `(min-width: ${size.base})`,\n\t\t\tmobileS: `(min-width: ${size.mobileS})`,\n\t\t\tmobileM: `(min-width: ${size.mobileM})`,\n\t\t\tmobileL: `(min-width: ${size.mobileL})`,\n\t\t\ttablet: `(min-width: ${size.tablet})`,\n\t\t\tlaptop: `(min-width: ${size.laptop})`,\n\t\t\tlaptopL: `(min-width: ${size.laptopL})`,\n\t\t\tdesktop: `(min-width: ${size.desktop})`,\n\t\t},\n\t},\n};\n","import WsTheme from './WsTheme';\n\nexport default WsTheme;\n","import { Functor, map } from 'ramda';\n\nlet ApiEndpoints: { [key: string]: string } = {\n\tpdpEndpoint: `/public/pdp-data`,\n\tintakeFileUpload: `/public/intake-file`,\n\tsubmitFeedback: `/public/submit-feedback`,\n\tstripe: `/stripe`,\n\tportalStatus: `/ehr/get-portal-status`,\n\toptimizelyTemplate: `/public/get-optimizely-datafile/%s`,\n\tfolxGraphql: `/graphql`,\n\tfolxGraphqlV2: `/graphql-v2`,\n\tleadCapture: `/contact`,\n\tpricing: `/stripe/pricing`,\n\tmedPricing: `/public/medication-pricing`,\n\tmemberPortal: `/member-portal`,\n\tdeliveryMethod: `/member-portal/delivery-method`,\n\tsurveys: `/surveys`,\n\tmemberOnboardingConfirmation: `/public/onboard-confirm`,\n\tmembershipOnboarding: `/public/membership-onboarding`,\n\tresendRegistrationCode: `/public/resend-registration-code`,\n\tcogsworthValidateAppointment: `/cogsworth/get-appointment-valid`,\n\tcogsworthConfirmAppointment: `/cogsworth/confirm-valid-appointment`,\n\tcogsworth: `/cogsworth`,\n\tpublic: `/public`,\n};\n\nApiEndpoints = map(\n\t(endpoint) => `${process.env.GATSBY_FOLX_API_BASE!}${endpoint}`,\n\tApiEndpoints as Functor\n);\n\nexport { ApiEndpoints };\n","export const commonErrors = {\n\tinputRequired: 'Enter a response',\n\tresponseRequired: 'Response required',\n\tselectionRequired: 'Select an option',\n\tmultiselectRequired: 'Select at least one option',\n\tfileSize: 'File size cannot exceed 3.4MB',\n\tcheckRequired: 'Check required',\n\tinvalidZip: 'Enter a valid ZIP',\n};\n\nexport const dropzoneErrors = {\n\tinvalid: 'Invalid upload. Please upload a supported file type.',\n\trequired: 'Upload required. Please upload a supported file type.',\n\tfailed: 'Upload failed. Please try again.',\n};\n\nexport const errorTypes = {\n\tapolloGraphql: 'Apollo: GraphQL Error',\n\tapolloNetwork: 'Apollo: Network Error',\n};\n","export const isBrowser = typeof window !== `undefined`;\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols;\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\n\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import{typeOf as e,isElement as t,isValidElementType as n}from\"react-is\";import r,{useState as o,useContext as s,useMemo as i,useEffect as a,useRef as c,createElement as u,useLayoutEffect as l}from\"react\";import d from\"shallowequal\";import h from\"@emotion/stylis\";import p from\"@emotion/unitless\";import f from\"@emotion/is-prop-valid\";import m from\"hoist-non-react-statics\";function y(){return(y=Object.assign||function(e){for(var t=1;t ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document ``\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"}:{};function R(){for(var e=arguments.length<=0?void 0:arguments[0],t=[],n=1,r=arguments.length;n1?t-1:0),r=1;r0?\" Args: \"+n.join(\", \"):\"\")):new Error(R.apply(void 0,[O[e]].concat(n)).trim())}var j=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&D(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s1<<30)&&D(16,\"\"+t),T.set(e,t),x.set(t,e),t},B=function(e){return x.get(e)},z=function(e,t){t>=k&&(k=t+1),T.set(e,t),x.set(t,e)},M=\"style[\"+N+'][data-styled-version=\"5.3.11\"]',G=new RegExp(\"^\"+N+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),L=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(N))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(N,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.11\");var i=Y();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},H=function(){function e(e){var t=this.element=q(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(u+=e+\",\")})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n'}}}return r}(this)},e}(),Z=/(a)(d)/gi,K=function(e){return String.fromCharCode(e+(e>25?39:97))};function Q(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=K(t%52)+n;return(K(t%52)+n).replace(Z,\"$1-$2\")}var ee=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},te=function(e){return ee(5381,e)};function ne(e){for(var t=0;t>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a)}o.push(i),this.staticRulesId=i}else{for(var c=this.rules.length,u=ee(this.baseHash,n.hash),l=\"\",d=0;d>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y)}o.push(m)}}return o.join(\" \")},e}(),se=/^\\s*\\/\\/.*$/gm,ie=[\":\",\"[\",\".\",\"#\"];function ae(e){var t,n,r,o,s=void 0===e?w:e,i=s.options,a=void 0===i?w:i,c=s.plugins,u=void 0===c?S:c,l=new h(a),d=[],p=function(e){function t(t){if(t)try{e(t+\"}\")}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}((function(e){d.push(e)})),f=function(e,r,s){return 0===r&&-1!==ie.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(se,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||D(15),ee(e,t.name)}),5381).toString():\"\",m}var ce=r.createContext(),ue=ce.Consumer,le=r.createContext(),de=(le.Consumer,new X),he=ae();function pe(){return s(ce)||de}function fe(){return s(le)||he}function me(e){var t=o(e.stylisPlugins),n=t[0],s=t[1],c=pe(),u=i((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=i((function(){return ae({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return a((function(){d(n,e.stylisPlugins)||s(e.stylisPlugins)}),[e.stylisPlugins]),r.createElement(ce.Provider,{value:u},r.createElement(le.Provider,{value:l},\"production\"!==process.env.NODE_ENV?r.Children.only(e.children):e.children))}var ye=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=he);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"))},this.toString=function(){return D(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=he),this.name+e.hash},e}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(e){return\"-\"+e.toLowerCase()};function Ee(e){return ve.test(e)?e.replace(ge,we).replace(Se,\"-ms-\"):e}var be=function(e){return null==e||!1===e||\"\"===e};function _e(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a1?t-1:0),r=1;r1?t-1:0),i=1;i?@[\\\\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(e){return e.replace(Re,\"-\").replace(De,\"\")}var Te=function(e){return Q(te(e)>>>0)};function xe(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var ke=function(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Ve=function(e){return\"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function Be(e,t,n){var r=e[n];ke(t)&&ke(r)?ze(r,t):e[n]=t}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(xe(e)?e:je(b(e)));return Ye(e,y({},o,{attrs:g,componentId:s}),n)},Object.defineProperty(A,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?ze({},e.defaultProps,t):t}}),\"production\"!==process.env.NODE_ENV&&(Pe(p,v),A.warnTooManyClasses=function(e,t){var n={},r=!1;return function(o){if(!r&&(n[o]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'+t+'\"':\"\";console.warn(\"Over 200 classes were generated for component \"+e+s+\".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"),r=!0,n={}}}}(p,v)),Object.defineProperty(A,\"toString\",{value:function(){return\".\"+A.styledComponentId}}),i&&m(A,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),A}var qe=function(e){return function e(t,r,o){if(void 0===o&&(o=w),!n(r))return D(1,String(r));var s=function(){return t(r,o,Ae.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,y({},o,{},n))},s.attrs=function(n){return e(t,r,y({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(Ye,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){qe[e]=qe(e)}));var He=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=ne(e),X.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(_e(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&X.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function $e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"),t.server&&h(d,e,t,o,n),l((function(){if(!t.server)return h(d,e,t,o,n),function(){return u.removeStyles(d,t)}}),[d,e,t,o,n]),null}function h(e,t,n,r,o){if(u.isStatic)u.renderStyles(e,P,n,o);else{var s=y({},t,{theme:Oe(t,r,d.defaultProps)});u.renderStyles(e,s,n,o)}}return\"production\"!==process.env.NODE_ENV&&Pe(a),r.memo(d)}function We(e){\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\"+t+\"\"},this.getStyleTags=function(){return e.sealed?D(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return D(2);var n=((t={})[N]=\"\",t[\"data-styled-version\"]=\"5.3.11\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=Y();return o&&(n.nonce=o),[r.createElement(\"style\",y({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new X({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?D(2):r.createElement(me,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return D(3)},e}(),Je=function(e){var t=r.forwardRef((function(t,n){var o=s(Me),i=e.defaultProps,a=Oe(t,o,i);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+b(e)+'\"'),r.createElement(e,y({},t,{theme:a,ref:n}))}));return m(t,e),t.displayName=\"WithTheme(\"+b(e)+\")\",t},Xe=function(){return s(Me)},Ze={StyleSheet:X,masterSheet:de};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default qe;export{Ue as ServerStyleSheet,ue as StyleSheetConsumer,ce as StyleSheetContext,me as StyleSheetManager,Ge as ThemeConsumer,Me as ThemeContext,Le as ThemeProvider,Ze as __PRIVATE__,$e as createGlobalStyle,Ae as css,_ as isStyledComponent,We as keyframes,Xe as useTheme,A as version,Je as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","module.exports = require('./lib/Observable.js').Observable;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription);\n\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver =\n/*#__PURE__*/\nfunction () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable =\n/*#__PURE__*/\nfunction () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function () {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}","'use strict';\n\nvar Observable = require('zen-observable');\n\nfunction addMethods(target, methods) {\n Object.keys(methods).forEach(function(k) {\n var desc = Object.getOwnPropertyDescriptor(methods, k);\n desc.enumerable = false;\n Object.defineProperty(target, k, desc);\n });\n}\n\nfunction send(p, message, value) {\n if (p._observer) {\n sendMessage(p._observer, message, value);\n } else if (p._observers) {\n var list = [];\n p._observers.forEach(function(to) { list.push(to); });\n list.forEach(function(to) { sendMessage(to, message, value); });\n }\n}\n\nfunction sendMessage(observer, message, value) {\n if (observer.closed) {\n return;\n }\n switch (message) {\n case 'next': return observer.next(value);\n case 'error': return observer.error(value);\n case 'complete': return observer.complete(value);\n }\n}\n\nfunction hasObserver(p) {\n return p._observer || p._observers && p._observers.size > 0;\n}\n\nfunction addObserver(p, observer) {\n if (p._observers) {\n p._observers.add(observer);\n } else if (!p._observer) {\n p._observer = observer;\n } else {\n p._observers = new Set();\n p._observers.add(p._observer);\n p._observers.add(observer);\n p._observer = null;\n }\n}\n\nfunction deleteObserver(p, observer) {\n if (p._observers) {\n p._observers.delete(observer);\n } else if (p._observer === observer) {\n p._observer = null;\n }\n}\n\nfunction notifyStart(p, opts) {\n !hasObserver(p) && opts && opts.start && opts.start();\n}\n\nfunction notifyPause(p, opts) {\n !hasObserver(p) && opts && opts.pause && opts.pause();\n}\n\nfunction PushStream(opts) {\n var p = this;\n this._observer = null;\n this._observers = null;\n this._observable = new Observable(function(observer) {\n notifyStart(p, opts);\n addObserver(p, observer);\n return function() {\n deleteObserver(p, observer);\n notifyPause(p, opts);\n };\n });\n}\n\naddMethods(PushStream.prototype, {\n get observable() { return this._observable; },\n get observed() { return hasObserver(this); },\n next: function(x) { send(this, 'next', x); },\n error: function(e) { send(this, 'error', e); },\n complete: function(x) { send(this, 'complete', x); },\n});\n\nmodule.exports = PushStream;\n","module.exports = require(\"./zen-observable.js\").Observable;\n","'use strict'; (function(fn, name) { if (typeof exports !== \"undefined\") { fn(exports, module); } else if (typeof self !== \"undefined\") { var e = name === \"*\" ? self : (name ? self[name] = {} : {}); fn(e, { exports: e }); } })(function(exports, module) { // === Symbol Support ===\n\nfunction hasSymbol(name) {\n return typeof Symbol === \"function\" && Boolean(Symbol[name]);\n}\n\nfunction getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : \"@@\" + name;\n}\n\n// Ponyfill Symbol.observable for interoperability with other libraries\nif (typeof Symbol === \"function\" && !Symbol.observable) {\n Symbol.observable = Symbol(\"observable\");\n}\n\n// === Abstract Operations ===\n\nfunction hostReportError(e) {\n setTimeout(function() { throw e });\n}\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n\n if (value == null)\n return undefined;\n\n if (typeof value !== \"function\")\n throw new TypeError(value + \" is not a function\");\n\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n if (ctor !== undefined) {\n ctor = ctor[getSymbol(\"species\")];\n if (ctor === null) {\n ctor = undefined;\n }\n }\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction addMethods(target, methods) {\n Object.keys(methods).forEach(function(k) {\n var desc = Object.getOwnPropertyDescriptor(methods, k);\n desc.enumerable = false;\n Object.defineProperty(target, k, desc);\n });\n}\n\nfunction cleanupSubscription(subscription) {\n // Assert: observer._observer is undefined\n\n var cleanup = subscription._cleanup;\n\n if (!cleanup)\n return;\n\n // Drop the reference to the cleanup function so that we won't call it\n // more than once\n subscription._cleanup = undefined;\n\n // Call the cleanup function\n try { cleanup() }\n catch (e) { hostReportError(e) }\n}\n\nfunction subscriptionClosed(subscription) {\n return subscription._observer === undefined;\n}\n\nfunction closeSubscription(subscription) {\n if (subscriptionClosed(subscription))\n return;\n\n subscription._observer = undefined;\n cleanupSubscription(subscription);\n}\n\nfunction cleanupFromSubscription(subscription) {\n return function() { subscription.unsubscribe() };\n}\n\nfunction Subscription(observer, subscriber) {\n // Assert: subscriber is callable\n\n // The observer must be an object\n if (Object(observer) !== observer)\n throw new TypeError(\"Observer must be an object\");\n\n this._cleanup = undefined;\n this._observer = observer;\n\n try {\n var start$0 = getMethod(observer, \"start\");\n if (start$0) start$0.call(observer, this);\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscriptionClosed(this))\n return;\n\n observer = new SubscriptionObserver(this);\n\n try {\n // Call the subscriber function\n var cleanup$0 = subscriber.call(undefined, observer);\n\n // The return value must be undefined, null, a subscription object, or a function\n if (cleanup$0 != null) {\n if (typeof cleanup$0.unsubscribe === \"function\")\n cleanup$0 = cleanupFromSubscription(cleanup$0);\n else if (typeof cleanup$0 !== \"function\")\n throw new TypeError(cleanup$0 + \" is not a function\");\n\n this._cleanup = cleanup$0;\n }\n } catch (e) {\n // If an error occurs during startup, then attempt to send the error\n // to the observer\n observer.error(e);\n return;\n }\n\n // If the stream is already finished, then perform cleanup\n if (subscriptionClosed(this))\n cleanupSubscription(this);\n}\n\naddMethods(Subscription.prototype = {}, {\n get closed() { return subscriptionClosed(this) },\n unsubscribe: function() { closeSubscription(this) },\n});\n\nfunction SubscriptionObserver(subscription) {\n this._subscription = subscription;\n}\n\naddMethods(SubscriptionObserver.prototype = {}, {\n\n get closed() { return subscriptionClosed(this._subscription) },\n\n next: function(value) {\n var subscription = this._subscription;\n\n // If the stream is closed, then return undefined\n if (subscriptionClosed(subscription))\n return;\n\n var observer = subscription._observer;\n\n try {\n // If the observer has a \"next\" method, send the next value\n var m$0 = getMethod(observer, \"next\");\n if (m$0) m$0.call(observer, value);\n } catch (e) {\n hostReportError(e);\n }\n },\n\n error: function(value) {\n var subscription = this._subscription;\n\n // If the stream is closed, throw the error to the caller\n if (subscriptionClosed(subscription)) {\n hostReportError(value);\n return;\n }\n\n var observer = subscription._observer;\n subscription._observer = undefined;\n\n try {\n var m$1 = getMethod(observer, \"error\");\n if (m$1) m$1.call(observer, value);\n else throw value;\n } catch (e) {\n hostReportError(e);\n }\n\n cleanupSubscription(subscription);\n },\n\n complete: function() {\n var subscription = this._subscription;\n\n if (subscriptionClosed(subscription))\n return;\n\n var observer = subscription._observer;\n subscription._observer = undefined;\n\n try {\n var m$2 = getMethod(observer, \"complete\");\n if (m$2) m$2.call(observer);\n } catch (e) {\n hostReportError(e);\n }\n\n cleanupSubscription(subscription);\n },\n\n});\n\nfunction Observable(subscriber) {\n // Constructor cannot be called as a function\n if (!(this instanceof Observable))\n throw new TypeError(\"Observable cannot be called as a function\");\n\n // The stream subscriber must be a function\n if (typeof subscriber !== \"function\")\n throw new TypeError(\"Observable initializer must be a function\");\n\n this._subscriber = subscriber;\n}\n\naddMethods(Observable.prototype, {\n\n subscribe: function(observer) { for (var args = [], __$0 = 1; __$0 < arguments.length; ++__$0) args.push(arguments[__$0]); \n if (typeof observer === 'function') {\n observer = {\n next: observer,\n error: args[0],\n complete: args[1],\n };\n } else if (typeof observer !== 'object' || observer === null) {\n observer = {};\n }\n\n return new Subscription(observer, this._subscriber);\n },\n\n forEach: function(fn) { var __this = this; \n return new Promise(function(resolve, reject) {\n if (typeof fn !== \"function\")\n return Promise.reject(new TypeError(fn + \" is not a function\"));\n\n __this.subscribe({\n _subscription: null,\n\n start: function(subscription) {\n if (Object(subscription) !== subscription)\n throw new TypeError(subscription + \" is not an object\");\n\n this._subscription = subscription;\n },\n\n next: function(value) {\n var subscription = this._subscription;\n\n if (subscription.closed)\n return;\n\n try {\n fn(value);\n } catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n },\n\n error: reject,\n complete: resolve,\n });\n });\n },\n\n map: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n\n return new C(function(observer) { return __this.subscribe({\n next: function(value) {\n if (observer.closed)\n return;\n\n try { value = fn(value) }\n catch (e) { return observer.error(e) }\n\n observer.next(value);\n },\n\n error: function(e) { observer.error(e) },\n complete: function() { observer.complete() },\n }); });\n },\n\n filter: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n\n return new C(function(observer) { return __this.subscribe({\n next: function(value) {\n if (observer.closed)\n return;\n\n try { if (!fn(value)) return }\n catch (e) { return observer.error(e) }\n\n observer.next(value);\n },\n\n error: function(e) { observer.error(e) },\n complete: function() { observer.complete() },\n }); });\n },\n\n reduce: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n\n return new C(function(observer) { return __this.subscribe({\n\n next: function(value) {\n if (observer.closed)\n return;\n\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try { acc = fn(acc, value) }\n catch (e) { return observer.error(e) }\n } else {\n acc = value;\n }\n },\n\n error: function(e) { observer.error(e) },\n\n complete: function() {\n if (!hasValue && !hasSeed) {\n return observer.error(new TypeError(\"Cannot reduce an empty sequence\"));\n }\n\n observer.next(acc);\n observer.complete();\n },\n\n }); });\n },\n\n});\n\nObject.defineProperty(Observable.prototype, getSymbol(\"observable\"), {\n value: function() { return this },\n writable: true,\n configurable: true,\n});\n\naddMethods(Observable, {\n\n from: function(x) {\n var C = typeof this === \"function\" ? this : Observable;\n\n if (x == null)\n throw new TypeError(x + \" is not an object\");\n\n var method = getMethod(x, getSymbol(\"observable\"));\n\n if (method) {\n var observable$0 = method.call(x);\n\n if (Object(observable$0) !== observable$0)\n throw new TypeError(observable$0 + \" is not an object\");\n\n if (observable$0.constructor === C)\n return observable$0;\n\n return new C(function(observer) { return observable$0.subscribe(observer); });\n }\n\n if (hasSymbol(\"iterator\") && (method = getMethod(x, getSymbol(\"iterator\")))) {\n return new C(function(observer) {\n for (var __$0 = (method.call(x))[Symbol.iterator](), __$1; __$1 = __$0.next(), !__$1.done;) { var item$0 = __$1.value; \n observer.next(item$0);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n }\n\n if (Array.isArray(x)) {\n return new C(function(observer) {\n for (var i$0 = 0; i$0 < x.length; ++i$0) {\n observer.next(x[i$0]);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n }\n\n throw new TypeError(x + \" is not observable\");\n },\n\n of: function() { for (var items = [], __$0 = 0; __$0 < arguments.length; ++__$0) items.push(arguments[__$0]); \n var C = typeof this === \"function\" ? this : Observable;\n\n return new C(function(observer) {\n for (var i$1 = 0; i$1 < items.length; ++i$1) {\n observer.next(items[i$1]);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n },\n\n});\n\nObject.defineProperty(Observable, getSymbol(\"species\"), {\n get: function() { return this },\n configurable: true,\n});\n\nObject.defineProperty(Observable, \"extensions\", {\n value: {\n observableSymbol: getSymbol(\"observable\"),\n setHostReportError: function(fn) { hostReportError = fn },\n },\n});\n\nexports.Observable = Observable;\n\n\n}, \"*\");","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `